1

JPanel 6 JButton に、1 行に 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);

残念ながら、これは機能しません。ボタンのサイズを変更することはできません。誰かアイデアがありますか?どうもありがとう。

4

5 に答える 5

2
于 2013-03-13T17:23:46.817 に答える
1

そのためには を使用する必要があります。GridLayoutより詳細な制御が必要な場合は、 も使用できますGridBagLayout

于 2013-03-13T17:22:21.140 に答える
1

レイアウト マネージャーを使用したくない場合は、まず make を作成し、代わりにすべてのボタンにframe.setLayout(null)使用します。最後に 。button1.setBounds(x,y,width,height)setSize()frame.setVisible(true)

于 2013-06-01T18:44:21.747 に答える
0

GridLayoutは良い考えですが、パネルにさらにコンポーネントを追加する予定がない場合、または 3 つのグループにのみコンポーネントを追加する予定がない場合は、SpringLayoutとそのmakeGridメソッドも同様に機能します。

于 2013-03-13T17:46:56.210 に答える
0

GridLayoutやなど、他のレイアウトも確認してくださいGridBagLayout
Oracle のこのチュートリアルは役に立つかもしれません。

ただし、レイアウトを操作する場合はsetPreferredSize(Dimension size)、 の代わりに, を使用してsetSizeください。

于 2013-03-13T17:24:11.010 に答える