好吧这可能看起来像一个奇怪的问题,但是有一种方法可以在调用类似的事之后发出一种方式jPanel3.getComponent(0).getName();
我可以用这个值来制作对变量的调用。基本上如果它返回说jLabel1。我可以使用它来调用该标签上的某些内容,例如.setText(“Hi”);而不必键入jLabel1.setText(“hi”)。我可以使用返回值直接调用函数的含义。
答案 0 :(得分:1)
如果我正确理解了这个问题,你需要这样的东西:
Component c=jPanel3.getComponent(0);
if (c instanceof JLabel)
((JLabel)c).setText("hi");
答案 1 :(得分:1)
组件的name
属性(即getName()
和setName()
)与您在创建时使用的变量无关。例如,您可以这样做(但不要,因为这非常令人困惑):
Component textField1 = new JLabel("text");
textField1.setName("comboBox1");
System.out.println(textField1.getName()); // comboBox1
无法返回到您的textField1
名称 - 当您调用getName()
方法时,该变量可能甚至不再存在。您甚至可以在不使用显式变量的情况下创建(和使用)组件,如下所示:
panel.add(new JLabel("text"));
由Jon编写,您可以将组件强制转换为实际类型,而不需要原始变量的名称。