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 回答