JButton、JTextField、JTextArea などのコンポーネントをすべて同じ ArrayList に格納し、後でループしてすべてのコンポーネントを JFrame に追加したいと考えています。それらをArrayListに保存しようとしましたが、それをループしてフレームに含まれるすべてのコンポーネントを追加すると、フレームに何も表示されませんでした。これを行う方法を知っている人はいますか?前もって感謝します。
質問する
3326 次
3 に答える
1
ArrayList
次のように宣言してみてください。
List<JComponent> = new ArrayList<JComponent>();
上記は, ,JComponent
の共通の祖先であるため機能します。つまり、すべての JComponent に共通のスーパー クラスです。JButton
JTextField
JTextArea
それは私には明らかではありません: なぜコンポーネントを最初に に追加したいのArrayList
ですか? に直接追加しますJFrame
。
于 2012-04-30T19:40:56.377 に答える
1
レイアウトマネージャーの使い方を知っていますか?
レイアウト マネージャーは、LayoutManager インターフェイス* を実装し、コンテナー内のコンポーネントのサイズと位置を決定するオブジェクトです。コンポーネントはサイズと配置のヒントを提供できますが、コンテナーのレイアウト マネージャーは、コンテナー内のコンポーネントのサイズと位置に関する最終決定権を持っています。
于 2012-04-30T19:50:21.020 に答える
1
これを進めます:
public class Example {
public static void main(String[] args) {
JFrame frame = new JFrame();
List<Component> components = new ArrayList<Component>();
components.add(new JButton("test1"));
components.add(new JButton("test3"));
components.add(new JButton("test3"));
frame.setLayout(new FlowLayout());
for(Component component: components)
frame.getContentPane().add(component);
frame.pack();
frame.setVisible(true);
}
}
- フレームにレイアウト マネージャーを追加する
pack()
コンポーネントに応じてフレームのサイズを変更するために呼び出します- フレームを表示する
于 2012-04-30T19:43:05.440 に答える