我试图将它们放在南边,两个按钮并排放置,但我该怎么办呢? 如果我这样离开它们,但按钮会自动放在顶部。
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
JButton button1 = new JButton("Button 1");
panel1.add(button1);
JButton test2 = new JButton("Button 2");
panel1.add(button2);
另外,如何在底部面板周围放置一个带有两个按钮的边框?
答案 0 :(得分:4)
我们的Frame将有两个面板,例如topPanel,bottomPanel。 TopPanel将位于NORTH,BottomPanel将位于SOUTH。
在主框架上,我们使用BorderLayout
,我们将两个面板放在NORTH,另一个放在SOUTH。
在BottomPanel上,我们将从中心开始使用FlowLayout
。因此,您添加到底部面板的组件将从中心开始对齐。
private void creteUI() {
JFrame frame = new JFrame();
JPanel mainPanel = new JPanel(new BorderLayout());
JPanel topPnl = new JPanel();
JPanel btnPnl = new JPanel(new FlowLayout(FlowLayout.CENTER));
JButton btnLeft = new JButton("Left");
JButton btnRight = new JButton("Right");
btnPnl.add(btnLeft);
btnPnl.add(btnRight);
btnPnl.setBorder(BorderFactory.createLineBorder(Color.BLACK));
mainPanel.add(topPnl, BorderLayout.NORTH);
mainPanel.add(btnPnl, BorderLayout.SOUTH);
JLabel label = new JLabel("Top Panel");
topPnl.add(label);
frame.add(mainPanel);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
答案 1 :(得分:2)
将panel2
的布局管理器设置为BorderLayout
...
panel2.setLayout(new BorderLayout());
将panel1
添加到BorderLayout.SOUTH
位置...
panel2.add(panel1, BorderLayout.SOUTH);
有关详细信息,请参阅Laying Out Components Within a Container
您可以使用Border
panel1
指定setBorder
pane2.setBorder(BorderFactory.createLineBorder(Color.black));
有关详细信息,请参阅How to Use Borders