0

我们如何在框架上创建一个位于北方和水平中心的按钮?(即不占据所有宽度)?

4

2 回答 2

2

BorderLayout扩展该NORTH位置的组件以填充容器的宽度。因此,您需要将它放在另一个容器中,该容器尊重组件的首选大小,JButton在这种情况下。您可以使用默认FlowLayoutJPanel

JPanel northPanel = new JPanel(); 
JButton button = new JButton("OK");
frame.add(northPanel, BorderLayout.NORTH);
于 2013-05-08T15:39:13.097 回答
1

尝试这样的解决方案:

public class MyFrame extends JFrame{
    public MyFrame(){
      super();
      JPanel contentPane = new JPanel(new BorderLayout());
      JButton myButton = new JButton("MyButton");
      JPanel myPanel = new JPanel(new FlowLayout.Center));
      myPanel.add(myButton);
      contentPane.add(myPanel,BorderLayout.CENTER); 
      setContentPanel(contentPane);
    }

}

当你在 jpanel 中包装按钮时,它会保存它的宽度,并且中心布局将它放在中心

于 2013-05-08T15:41:49.457 回答