我试图以这样的方式放入我的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);
不幸的是,这不起作用,我无法成功改变按钮的大小。有人有想法吗?非常感谢你。
答案 0 :(得分:2)
覆盖JPanel
getPreferredSize
在JFrame.pack();
JFrame.setVisible(true);
答案 1 :(得分:1)
您应该使用GridLayout
,如果您想要更多控制权,也可以使用GridBagLayout
。
答案 2 :(得分:1)
如果您不想使用任何布局管理器,请先为frame.setLayout(null)
制作button1.setBounds(x,y,width,height)
并使用setSize()
代替frame.setVisible(true)
。最后{{1}}。
答案 3 :(得分:0)
您应该查看其他一些布局,例如GridLayout
或GridBagLayout
。
来自Oracle的This tutorial可能证明是有用的。
但是,在使用布局时,请使用setPreferredSize(Dimension size)
,而不是setSize
。
答案 4 :(得分:0)
GridLayout
是一个不错的主意,但如果您不打算向面板添加更多组件或仅在3组中添加,SpringLayout使用makeGrid
方法就可以了太