2017-02-27 2 views
0

Je veux JTextField apparaisse au centre sur le panneau à l'aide BorderLayout mais il n'apparaît pas, des boutons apparaissent, mais ne JTextField pas ..JTextField n'apparaît pas

import java.awt.*; 
import javax.swing.*; 
public class cal { 

    public static void main(String[] args) { 
     JFrame frame= new JFrame(); 
     frame.setVisible(true); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setSize(400, 300); 
     frame.setLayout(new FlowLayout()); 
     JPanel panel= new JPanel(); 
     panel.setLayout(new BorderLayout()); 
     JTextField answer= new JTextField("0"); 
     panel.add(answer, BorderLayout.CENTER); 
     frame.add(panel); 
    } 

} 
+4

Appelez 'frame.setVisible (true);' seulement une fois que tous les composants ont été ajoutés. – Berger

+3

Quels boutons? Vous n'avez pas de boutons ici ... Vous devriez aussi 'emballer' le Cadre –

Répondre

0

Vous devez appeler setVisible (true) sur votre cadre après l'ajout de composants.

import java.awt.BorderLayout; 
import java.awt.FlowLayout; 

import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JTextField; 
public class cal { 

    public static void main(final String[] args) { 
     JFrame frame = new JFrame(); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setSize(400, 300); 
     frame.getContentPane().setLayout(new FlowLayout()); 
     JPanel panel = new JPanel(); 
     panel.setLayout(new BorderLayout()); 
     JTextField answer = new JTextField("0"); 
     panel.add(answer, BorderLayout.CENTER); 
     frame.getContentPane().add(panel); 
     frame.pack(); 
     frame.setVisible(true); 
    } 

} 
+5

Expliquez quels sont les changements et pourquoi vous avez fait les changements. La comparaison de code n'aide pas à comprendre pourquoi vous avez fait les changements. – camickr

+1

Bien que cet extrait de code puisse résoudre la question, [y compris une explication] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) aide vraiment à améliorer la qualité de votre message. Rappelez-vous que vous répondez à la question pour les lecteurs dans le futur, et que ces personnes pourraient ne pas connaître les raisons de votre suggestion de code. – DimaSan

+0

Vous avez raison. Je vous remercie. –