因此,我有少量对象(10个JLabel),并且我想根据用户输入更改其文本。

标签的初始化程序是这样的:

private JLabel j1 = new JLabel();
private JLabel j2 = new JLabel();
private JLabel j3 = new JLabel();
...etc


并继续到10。

如何批量更改每个JLabel的文本,而不必每次都写每个变量名?

我有如下想法,但是我不知道如何通过字符串从名称访问变量。

for(int x=1;x<=10;x++){
  String d = (String) x; //this isn't what d equals, it's example.
  String label = "j"+x;
  label.setText(d); //I know this won't work, but this is what I want to do
}


有什么办法可以做到没有错误?

最佳答案

这是使用数组存储JLabel对象的绝好机会:

private JLabel[] labels = new JLabel[10];

for (int i=0; i<10; i++) {
    labels[i] = new JLabel();
}

/* ... */

for (int i=0; i<10; i++) {
    labels[i].setText("Hello from label " + i);
}

关于java - 如何将字符串解析为对象的名称?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10628753/

10-16 17:07