我在Java Swing中工作,我正在生成一个动态表单,其中包含控件名称opc1_1、opc1_2、opc1_3、opc2_1、opc2_2等。如何动态获取每个控件的值?我举了一个很糟糕的例子来说明。
for(int i = 1; i < 10; i ++) {
Control objControl = get("opc1_" + i);
if(objControl == JComboBox)
System.out.println(objControl.getSelectedItem().toString());
else if(objControl == JTextField)
System.out.println(objControl.getText);
}非常感谢
发布于 2011-11-06 06:37:06
使用数组/列表来存储Control对象,代码中Control对象的名称并不重要。
然后,只需像对任何其他数组/列表一样迭代您的数组/列表,以获得每个Control对象的值。
此外,=用于赋值,==用于比较,instanceof用于检查对象是否为特定类型。在好的OO设计中,通常会尽量避免使用instanceof运算符。
发布于 2011-11-06 07:52:49
请注意,组件具有getName()和setName()方法。当您向容器中添加越来越多的组件时,这些组件就是您的朋友。我不认为容器有一个方法getComponentNamed(String s),但它很容易编写。
我赞同气垫船使用地图的绝佳建议。
https://stackoverflow.com/questions/8023779
复制相似问题