Comment faire pour centrer un Composite lors de la JFrame est redimensionnée ou agrandie?
Je veux que mon JPanel
d'être encore dans le centre, quand j'maximiser ou re-taille de l' JFrame
. Comment puis-je le faire?
Essayé:
jframe.add(panel, BorderLayout.CENTER);
panel.setAlignmentX(JComponent.CENTER_ALIGNMENT);
Mais ça ne fonctionne pas.
Voici mon code:
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
login frame = new login();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public login() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setBounds(5, 5, 409, 267);
setLocationRelativeTo(null);
contentPane = new JPanel();
contentPane.setBackground(new Color(0, 128, 128));
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
panel = new JPanel();
panel.setBounds(57, 42, 292, 167);
panel.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "Login", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 255)));
panel.setLayout(null);
contentPane.add(panel);
textField = new JTextField();
textField.setBounds(71, 35, 192, 26);
panel.add(textField);
textField.setColumns(10);
passwordField = new JPasswordField();
passwordField.setBounds(71, 72, 192, 26);
panel.add(passwordField);
JLabel lblNewLabel = new JLabel("Username:");
lblNewLabel.setBounds(6, 41, 68, 14);
panel.add(lblNewLabel);
JLabel lblNewLabel_1 = new JLabel("Password:");
lblNewLabel_1.setBounds(6, 78, 68, 14);
panel.add(lblNewLabel_1);
JButton btnNewButton = new JButton("Login");
btnNewButton.setBounds(71, 120, 89, 23);
panel.add(btnNewButton);
JButton btnNewButton_1 = new JButton("Cancel");
btnNewButton_1.setBounds(174, 120, 89, 23);
panel.add(btnNewButton_1);
Comment vais-je faire ici?
- 1) Java Interfaces utilisateur peut avoir à travailler sur un certain nombre de plates-formes, sur différentes résolutions d'écran & à l'aide de différents PLAFs. En tant que tels, ils ne sont pas propices à l'exact du placement des composants. D'organiser les composants d'un solide GUI, au lieu d'utiliser gestionnaires de disposition, ou combinaisons, avec la mise en page de rembourrage & frontières pour espace blanc. 2) Pour mieux aider plus tôt, après une MCVE (pour être un MCVE, que le code nécessiterait une déclaration de classe et les importations).
Vous devez vous connecter pour publier un commentaire.
Vous pouvez simplement utiliser
GridBagLayout
sur le conteneur parent. Il met tous ses composants autour du centre du conteneur.GridBagLayout
, sinon, vous aurez besoin de faire tout le repositionnement manuellementN'utilisez pas un null mise en page. Vous pouvez le faire avec un BoxLayout ou un GridLayout, selon le comportement que vous voulez. Vérifier la liste des tutoriels pour plus d'info: http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html
GridBagLayout
utilise le centre du conteneur à la position de l'enfant composants sur. Voir ma réponse pour une démonstration...Remplacer
Par
OU