2

GUI 内のコンポーネントは、JButton、JPanel、JTextField などの優れたもののようなものであると言うのが正しい用語であることを願っています。

整数を受け取るテキスト フィールドを作成したいと考えています。次に、送信ボタンを押して、入力された整数に基づいて、ポップアップウィンドウなどにその数のテキストフィールドを作成できます。

私には手がかりがありません。誰かが私を正しい方向に導くことができますか?

私が抱えている問題は、GUI コンポーネントを作成するための for ループを作成する方法がわからないことです。for ループがあり、次のようなことをするとします。

print("JTextField num1 = new JTextField()");

次に、for ループでは、多くのテキスト フィールドが必要な場合に 1 つのテキスト フィールドのみが作成されます。JTextFields の変数を一般的に作成するにはどうすればよいですか?

ご協力いただきありがとうございます...

4

3 に答える 3

6

適切な LayoutManager (例: GridLayout) を使用して、テキスト フィールドを作成および追加します。

for (i = 0; i < numberOfTextFields; i++) {
    JTextField textField = new JTextField();
    container.add(textField);
    /* also store textField somewhere else. */
}
于 2008-12-15T10:24:17.620 に答える
1

次のようなことを試してください:

List<JTextField> nums = new ArrayList<JTextField>();
JTextField tempField;

for (int i = 0; i < 10; i++) {
    tempField = new JTextField();
    jPanel1.add(tempField); // Assuming all JTextFields are on a JPanel
    nums.add(tempField);
}

コンテナーに適切なレイアウト マネージャーを設定することを忘れないでください。(この場合は jPanel1)

于 2008-12-15T10:24:36.200 に答える
0

テキスト フィールドを格納する List を作成すると、インデックスによってそれらを取得できます。その後、必要な数のフィールドを持つことができます。

List fields = new ArrayList();

// Create as many elements as you need
for (int i = 0; i < numberOfElements; i++){
  JTextField field = new JTextField();
  // Add the fields to some panel so they are shown in the screen.  
  // I assume that the component is called parent panel
  parentPanel.add(field);

  // Store the component in the list so you can retrieve it later
  fields.add(field);
}

// ...

// When you want to retrieve a particular one:

JTextField field = (JTextField)fields.get( indexToRetrieve );
于 2008-12-15T10:20:57.050 に答える