如何将6个相同大小的JButton放入JPanel?

时间:2013-03-13 17:19:45

标签: java swing jpanel jbutton

我试图以这样的方式放入我的JPanel 6 JButton,在一行中有3个JButton,在另外3个JButton下面。因为我知道JPanel明确地使用Flow Layout Manager,所以我有这样的想法:

JFrame frame = new JFrame();
JPanel panel = new JPanel();
frame.getContentPane().add(panel);

JButton button1 = new JButton();
JButton button2 = new JButton();
JButton button3 = new JButton();
JButton button4 = new JButton();
JButton button5 = new JButton();
JButton button6 = new JButton();

button1.setSize((panel.WIDTH)/3,(panel.HEIGHT)/2);
button2.setSize((panel.WIDTH)/3,(panel.HEIGHT)/2);
button3.setSize((panel.WIDTH)/3,(panel.HEIGHT)/2);
button4.setSize((panel.WIDTH)/3,(panel.HEIGHT)/2);
button5.setSize((panel.WIDTH)/3,(panel.HEIGHT)/2);
button6.setSize((panel.WIDTH)/3,(panel.HEIGHT)/2);

panel.add(button1);
panel.add(button2);
panel.add(button3);
panel.add(button4);
panel.add(button5);
panel.add(button6);

不幸的是,这不起作用,我无法成功改变按钮的大小。有人有想法吗?非常感谢你。

5 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

您应该使用GridLayout,如果您想要更多控制权,也可以使用GridBagLayout

答案 2 :(得分:1)

如果您不想使用任何布局管理器,请先为frame.setLayout(null)制作button1.setBounds(x,y,width,height)并使用setSize()代替frame.setVisible(true)。最后{{1}}。

答案 3 :(得分:0)

您应该查看其他一些布局,例如GridLayoutGridBagLayout
来自Oracle的This tutorial可能证明是有用的。

但是,在使用布局时,请使用setPreferredSize(Dimension size),而不是setSize

答案 4 :(得分:0)

GridLayout是一个不错的主意,但如果您不打算向面板添加更多组件或仅在3组中添加,SpringLayout使用makeGrid方法就可以了太