我怎样才能更好地做到这一点?
label1.setText("foo");
label2.setText("foo");
label3.setText("foo");
label4.setText("foo");
For example like(PSEUDOCODE):
for(i=0; i<5; i++;){
label+i.setText("foo");
}
我必须更改135个标签,所以想要一些提示。 如果你也知道如何更容易地做这样的功能,.. jlabelnum可能是1,2,3,... 135外汇。标签(jlabelnum) - &gt; Label1,Label2,......
public void setLabelforView(int jlabelnum, String StringValue, Color color) {
Label.
switch(jlabelnum){
case 1:
break;
case 1:
break;
case 2:
break;
非常感谢!
答案 0 :(得分:0)
从这一点来说,可能最简单的方法是使用HashMap
按名称索引表单中的所有组件:
HashMap<String,Component> map = new HashMap<String,Component>();
Component[] comps = getComponentPane().getComponents();
for (int i=0; i < comps.length; i++)
map.put(comps[i].getName(), comps[i]);
之后,您就可以在map
中查找组件,并随意使用它们。如果您知道自己只需要弄乱标签,则可以在决定是否添加标签之前检查每个组件是否为instanceof JLabel
。
(更好的方法是以编程方式创建标签,并在其中包含正确的文本,然后以编程方式将其添加到表单中。)
答案 1 :(得分:0)
如果你想处理许多标签,请像这样创建一个数组
public class Test{
//create the array
JLabel[] labels = new JLabel[100];
public Test(){
//loop through them and set their text value
for(int i = 0; i < labels.length; i++){
labels[i] = new JLabel("foo");
}
}
然后这里有一个函数可以改变其中一个文本(和颜色)
public void setLabelforView(int jlabelnum, String StringValue, Color color) {
labels[jlabelnum].setText(StringValue);
labels[jlabelnum].setForeground(color);
}
此功能会改变所有这些
public void setAllLabelsForView(String string, Color color){
for(int i = 0; i < labels.length; i++){
labels[i].setText(string);
labels[i].setForeground(color);
}
}