JTextField の幅を画面サイズの 50% などに設定する方法があるかどうか疑問に思っていました。画面の寸法を取得する方法を知っています JTextField は、ピクセルではなく文字数に設定します
textfield = new JTextField("こんにちは", 20);
これを行う方法はありますか?
JTextField の幅を画面サイズの 50% などに設定する方法があるかどうか疑問に思っていました。画面の寸法を取得する方法を知っています JTextField は、ピクセルではなく文字数に設定します
textfield = new JTextField("こんにちは", 20);
これを行う方法はありますか?
のサイズをJTextField
ピクセル単位で設定すると、一般的には推奨されない絶対配置を使用する道をたどります。レイアウトマネージャーなしでやるより
レイアウト マネージャーがなくても実行できますが、可能であればレイアウト マネージャーを使用する必要があります。レイアウト マネージャーは、他のコンテナーや他のプログラムでも簡単に再利用できます。
既存のレイアウト マネージャーが提供する機能を確認し、 setXXXSize()コンポーネント メソッドの使用を避けてください。たとえば、GridLayout
(またはGridBagLayout
) を使用して、JTextField
幅をフレーム クライアント領域の 50% にサイズ変更できます。
setSize() メソッドを使用して JTextField コンポーネントのサイズを設定できます。
public void setSize(int width,
int height)
幅 width と高さ height になるように、このコンポーネントのサイズを変更します。パラメータ: width - このコンポーネントの新しい幅 (ピクセル単位) height - このコンポーネントの新しい高さ (ピクセル単位)
Javadoc: http://docs.oracle.com/javase/1.4.2/docs/api/java/awt/Component.html#setSize(int , int)
編集: GridLayout に追加されたコンポーネントは、追加された最大のコンポーネントと同じサイズにサイズ変更されます。コンポーネントを適切なサイズのままにしたい場合は、そのコンポーネントを JPanel でラップすると、パネルのサイズが変更されます。
setPreferredSize
の代わりにも使用しsetSize
ます。