1

よく似た投稿を見ましたが、的を射ていませんでした。

私は次のようなことを考えていました:

Object[][] test = {
          {"Name", new JTextField()},
          {"Gender", new JComboBox()}
}

このようなことを試しましたが、JTextField または JComboBox のメソッドを使用できません。1-index に応じてこれをインスタンス化するにはどうすればよいですか? これは可能ですか?

4

3 に答える 3

4

それが何であるかを確実に知っている場合は、このように出たときにキャストできます。

JComboBox box = (JComboBox)(test[1][1]);
box.whatever();

ただし、を使用する代わりに、Object[][]単にクラスを作成してみませんか?

class UIWidgets {
    JTextField name;
    JComboBox gender;
}
于 2012-07-26T16:09:21.373 に答える
2

Java はすべてのメソッドを のインスタンスと見なすため、型に固有のメソッドにアクセスする前に、最初にキャストする必要がありますObject

((JTextField)test[0][1]).CallMethodHere();

または代わりに:

JTextField tf = (JTextField)test[0][1];
// do something with tf
于 2012-07-26T16:08:42.993 に答える
0

これを試して:

((JTextField) test[0][1]).setText("someText");
于 2012-07-26T16:09:13.027 に答える