2014-07-12 7 views
1

Bien que j'utilise BorderLayout.CENTER, mon groupe de boutons semble toujours s'aligner sur le nord du panneau. Si j'utilise BorderLayout.SOUTH leur position relative est la même que BorderLayout.CENTER mais au sud du panneau.Comment centrer les boutons dans un panneau

Comment puis-je les amener au milieu du panneau?

Y a-t-il quelque chose que je fasse qui est carrément faux?

public void createExecuteArea() { 

     JButton connectButton = new JButton("Connect"); 
     connectButton.setPreferredSize(new Dimension(100, 40)); 
     JButton disconnectButton = new JButton("Disconnect"); 
     disconnectButton.setPreferredSize(new Dimension(100, 40)); 
     JButton abortButton = new JButton("Abort"); 
     abortButton.setPreferredSize(new Dimension(100, 40)); 

     executePanel = new JPanel(); 
     executePanel.setLayout(new BorderLayout()); 

     JPanel buttonPanel = new JPanel(); 

     buttonPanel.add(connectButton); 
     buttonPanel.add(disconnectButton); 
     buttonPanel.add(abortButton); 

     executePanel.add(buttonPanel, BorderLayout.CENTER); 
    } 

Les modifications suivantes à mon code ont résolu mes problèmes.

public void createExecuteArea() { 

     JButton connectButton = new JButton("Connect"); 
     connectButton.setPreferredSize(new Dimension(100, 40)); 
     JButton disconnectButton = new JButton("Disconnect"); 
     disconnectButton.setPreferredSize(new Dimension(100, 40)); 
     JButton abortButton = new JButton("Abort"); 
     abortButton.setPreferredSize(new Dimension(100, 40)); 

     executePanel = new JPanel(new GridBagLayout()); 
     GridBagConstraints c = new GridBagConstraints(); 

     JPanel buttonPanel = new JPanel(); 

     buttonPanel.add(connectButton); 
     buttonPanel.add(disconnectButton); 
     buttonPanel.add(abortButton); 

     executePanel.add(buttonPanel, c); 
    } 

Répondre

1

Le problème est lié à executePanel et à la mise en page utilisée. Vous ne lui donnez pas une mise en page explicite, et utilise donc un BorderLayout par défaut. Si vous souhaitez centrer vos boutons dans ce JPanel, pensez à utiliser une autre mise en page, peut-être un GridBagLayout.

Pour obtenir une aide plus spécifique, vous pouvez créer et publier un minimal example program.

Questions connexes