2012-02-13 6 views
2

JPanelで、JLabel、JButton、およびJTextFieldがこの順に水平に並べられています。 JTextFieldには、最初はテキストがありません。 JLabelとJButtonはそれぞれ自然な幅で表示されます。しかし、JTextFieldの幅は非常に小さいです。JComponentがJPanelの残りの幅を使い切る

JTextFieldは、JLabelとJButtonから残されたJPanelの残りの幅をすべて使用し、これが入力されたテキストに関係なくその幅を保持できるようにするにはどうすればよいですか?

+3

'JTextField(int columns)'が十分でない場合、 'BoxLayout'が行うかもしれません。 – trashgod

+0

BoxLayoutは、JTextFieldがそれを含むJPanelと同じ高さになっていることを除いて、この問題を解決しています(それほど高さである必要はありません)。 –

+0

[*コンポーネントサイズの指定*](http://docs.oracle.com/) com/javase/tutorial/uiswing/layout/box.html#size)。 – trashgod

答えて

2

私はBoxLayoutを使ったことが一度もありませんので、そのトリックを行うことがあります。ただし、確かにGridBagLayoutできます。

GridBagConstraintsをgridx = 0,1,2(それぞれコンポーネント1,2,3)gridy = 0(すべての場合)、最初の2つのweightx = 0、最後の2つのweightx = 1.0に設定します。成分。

関連する問題