よく似た投稿を見ましたが、的を射ていませんでした。
私は次のようなことを考えていました:
Object[][] test = {
{"Name", new JTextField()},
{"Gender", new JComboBox()}
}
このようなことを試しましたが、JTextField または JComboBox のメソッドを使用できません。1-index に応じてこれをインスタンス化するにはどうすればよいですか? これは可能ですか?
よく似た投稿を見ましたが、的を射ていませんでした。
私は次のようなことを考えていました:
Object[][] test = {
{"Name", new JTextField()},
{"Gender", new JComboBox()}
}
このようなことを試しましたが、JTextField または JComboBox のメソッドを使用できません。1-index に応じてこれをインスタンス化するにはどうすればよいですか? これは可能ですか?
それが何であるかを確実に知っている場合は、このように出たときにキャストできます。
JComboBox box = (JComboBox)(test[1][1]);
box.whatever();
ただし、を使用する代わりに、Object[][]単にクラスを作成してみませんか?
class UIWidgets {
JTextField name;
JComboBox gender;
}
Java はすべてのメソッドを のインスタンスと見なすため、型に固有のメソッドにアクセスする前に、最初にキャストする必要がありますObject。
((JTextField)test[0][1]).CallMethodHere();
または代わりに:
JTextField tf = (JTextField)test[0][1];
// do something with tf
これを試して:
((JTextField) test[0][1]).setText("someText");