JavaのGUIは、コンポーネントの作成します
-
21-08-2019 - |
質問
私はそれがGUIのコンポーネントはJButtonの、のJPanel、JTextFieldを、すべてが良いもののようであると言って、正しい用語-賢明であると思います。
私は整数になりますテキストフィールドを作成します。そして、送信ボタンを押して、入力された整数値に基づくことができ、ポップアップウィンドウまたは任意で、多くのテキストフィールドを作成します。
私は見当がつかない、誰か私は正しい方向に始めることができる?
私がいるトラブルは、私はGUIコンポーネントを作成するためのforループを作成する方法を見当もつかないということです。私は、forループを持っているとような何かを行う場合、私は意味します:
print("JTextField num1 = new JTextField()");
私は多くをしたいとき、ループのために、それは1つのだけのテキストフィールドを作成します。どのように私は、一般的のJTextFieldの変数を作成するのですか?
あなたの助けてくれてありがとう...
解決
あなたのテキストフィールドを作成して追加することが適当でLayoutManager(例えば、GridLayoutの)を使用します。
for (i = 0; i < numberOfTextFields; i++) {
JTextField textField = new JTextField();
container.add(textField);
/* also store textField somewhere else. */
}
他のヒント
このような何かを試してみてください。
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)
私は、テキストフィールドを格納するためのリストを作成し、その後、あなたは、インデックスによってそれらを取り戻すことができます。あなたが必要として、あなたはできるだけ多くのフィールドを持つことができます。
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 );
所属していません StackOverflow