2009-02-27 13 views
2

私はJTextFieldを使用していますが、デフォルトのサイズを指定しないと、幅が0になるJavaプログラムがあります。それをBorderLayoutに挿入すると、コンテナ全体を埋めるためにどのように展開するのですか?これは自動的に容器の幅は、例えば図示を充填するBorderLayoutでJTextFieldを展開する方法(Java)

答えて

5

、テキストフィールドが正常に動作します。ただし、EASTまたはWESTに挿入すると機能しません。

import java.awt.BorderLayout; 

import javax.swing.JFrame; 
import javax.swing.JTextField; 


public class TextFieldTest { 
    public static void main(String[] args) { 
     JFrame f = new JFrame(); 
     f.setLayout(new BorderLayout()); 
     JTextField tf = new JTextField(); 
     f.getContentPane().add(BorderLayout.EAST, tf); 
     f.pack(); 
     f.setVisible(true); 
    } 
} 

私の質問はあなたです:これはBorderLayoutである必要がありますか、他のレイアウトマネージャを使用できますか?可能であれば、GridBagLayoutをチェックして、コンテナ全体に合わせて要素を自動的に展開(ウェイトを使用)できるようにする必要があります。

+0

私は投票なしで受け入れられた答えを得ましたか? Niiii​​ce! – Ascalonian

+3

ここには、アップボート –

0

:上記の例で

import java.awt.BorderLayout; 

import javax.swing.JFrame; 
import javax.swing.JTextField; 


public class TextFieldTest { 
    public static void main(String[] args) { 
     JFrame f = new JFrame(); 
     f.setLayout(new BorderLayout()); 
     JTextField tf = new JTextField(); 
     f.add(tf, BorderLayout.SOUTH); 
     f.pack(); 
     f.setVisible(true); 
    } 
} 
+0

EDTからSwingコンポーネントを使用しないでください! –

1

スイングでプログラミングする際に重要なことは、優れたレイアウトマネージャを使用することです。私にとって、完璧なレイアウトマネージャはMigLayoutです。これは、すべてのレイアウトニーズに最適なワンストップソリューションです。彼らのサイトは優れたドキュメンテーションと例を提供しています。

2

容器全体を充填しますか? BorderLayoutを使う?

container.add(jTextField, BorderLayout.CENTER); 

シンプルなものです。

関連する問題