1

我试图将 6 个 JButtons 放入我的 JPanel 中,这样一行中有 3 个 JButtons,另外 3 个 JButtons 下方。因为我知道明确的 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);

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

4

5 回答 5

2
于 2013-03-13T17:23:46.817 回答
1

你应该使用 a GridLayout,如果你想要更多的控制,你也可以使用GridBagLayout.

于 2013-03-13T17:22:21.140 回答
1

如果您不想使用任何布局管理器,则首先制作frame.setLayout(null)并使用button1.setBounds(x,y,width,height)每个按钮而不是setSize(). 最后 frame.setVisible(true)

于 2013-06-01T18:44:21.747 回答
0

您应该查看其他一些布局,例如GridLayout, 或GridBagLayout.
来自 Oracle 的本教程可能会很有用。

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

于 2013-03-13T17:24:11.010 回答
0

GridLayout是个好主意,但如果您不打算向面板添加更多组件或仅以 3 个为一组,SpringLayout及其makeGrid方法也可以解决问题。

于 2013-03-13T17:46:56.210 回答