Les éléments d'interface graphique ne montre pas jusqu'à ce redimensionnement de la fenêtre

J'ai fait des expériences avec le fait de faire des Interfaces graphiques en java, contrairement à l'aide de "statique" de tous les temps et de trouver l' "SwingUtilities.invokeLater()" la méthode. J'ai réussi à obtenir tout ce que l'installation, mais quand il s'agit de l'exécution de l'application, rien ne s'affiche sur le Composite jusqu'à ce que je redimensionner la fenêtre. Est-il un correctif pour cela ou suis-je tout faux?

Voilà mon code:

public class main extends JPanel implements ActionListener{ 
public JLabel userLabel;
public JLabel passLabel;
public JTextField userField;
public JTextField passField;
public JButton login;
public JButton closeLogin;
public JButton help;
public main(){
userLabel = new JLabel("Username: ");
passLabel = new JLabel("Password: ");
userField = new JTextField(16);
passField = new JTextField(16);
login = new JButton("Login");
login.setActionCommand("login");
login.setMnemonic(KeyEvent.VK_L);
closeLogin = new JButton("Close");
closeLogin.setActionCommand("closeLogin");
closeLogin.setMnemonic(KeyEvent.VK_E);
help = new JButton("Help");
help.setActionCommand("helpLogin");
help.setMnemonic(KeyEvent.VK_H);
login.addActionListener(this);
closeLogin.addActionListener(this);
help.addActionListener(this);
add(userLabel);
add(userField);
add(passLabel);
add(passField);
add(login);
add(help);
add(closeLogin);
}
public void actionPerformed(ActionEvent e){ 
}
public static void initComponents(){
JFrame loginFrame = new JFrame("Encrypted Chat - Login");
loginFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
main loginPanel = new main();
loginPanel.setLayout(new FlowLayout());
loginFrame.setSize(300, 125);
loginFrame.setResizable(false);
loginFrame.setVisible(true);        
}
public static void main(String args[]){
SwingUtilities.invokeLater(new Runnable(){
public void run(){
initComponents();
}
});
}

}

EDIT: je sais que le mot de passe component swing jtextfield est destiné à être un JPasswordField.. donc l'ignorer 😛

S'il vous plaît, s'il vous plaît ne pas empêcher le redimensionnement d'un conteneur inutilement; veuillez utiliser setSize() avec parcimonie; certaines plates-formes ont la taille différente des polices de caractères, certaines langues ont la taille différente des mots. Veuillez utiliser pack().

OriginalL'auteur Andrei0427 | 2012-09-06