2

私は3つのボタンを持つフローレイアウトを持っています.1番目と2番目のボタンの間に30の水平ギャップが必要で、2番目と3番目のボタンの間に10の水平ギャップが必要です.私はこれを試しました:

Jpanel panel = new JPanel(new FlowLayout());
JButton button1 = new Button("1");
JButton button2 = new Button("2");
JButton button3 = new Button("3");

panel.add(button1);
((FlowLayout)panel.getLayout()).setHgap(30);
panel.add(button2);
((FlowLayout)panel.getLayout()).setHgap(10);
panel.add(button3);

ただし、これによりすべての水平ギャップが 10 に変更されます。

任意のアイデアをいただければ幸いです、ありがとう。

4

4 に答える 4

8

Box.createHorizo​​ntalStrut を使用してみてください

panel.add(button1);
panel.add(Box.createHorizontalStrut(30));
panel.add(button2);
Box.createHorizontalStrut(10);
panel.add(button3);
于 2011-06-28T18:30:53.760 に答える
4

EmptyBorderを2 番目のボタンに追加し、追加のピクセルを 2 番目のパラメーター ( left)に追加します。

button2.setBorder(new EmptyBorder(0, 20, 0, 0));
于 2011-06-28T14:21:13.483 に答える
2

MigLayout を試すことができます。

Jpanel panel = new JPanel(new MigLayout());

panel.add(new Button("1"), "gap right 30");
panel.add(new Button("2"), "gap right 10");
panel.add(new Button("3"));
于 2011-06-28T14:07:43.477 に答える
1

createRigidArea(...)別の解決策は、常に指定されたサイズの非表示コンポーネントを作成する a を使用することです。このようなコンポーネントは、スペーサーとして使用できます。

panel.add(button1);
panel.add(Box.createRigidArea(new Dimension(30, 0)));
panel.add(button2);
panel.add(Box.createRigidArea(new Dimension(10, 0)));
panel.add(button3);
于 2017-05-08T10:22:28.290 に答える