JLabel label_1 = new JLabel();
int i = 1; JLabel label_i = new JLabel();
答案 0 :(得分:3)
这不能用Java完成。你可以使用数组:
JLabel[] array = new JLabel[2];
array[0] = new JLabel();
array[1] = new JLabel();
或收藏集,例如ArrayList
:
List<JLabel> arrayList = new ArrayList<JLabel>();
arrayList.add(new JLabel());
// ...
arrayList.get(0).setText("...");
答案 1 :(得分:1)
int i = 1;
JLabel label_i = new JLabel(String.valueOf(i));
答案 2 :(得分:1)
如果您的问题涉及“动态变量名称”,其中可以使用其他变量指定变量名称,例如:
String x1 = "stuff";
int w = 2;
String x"w" = "stuff 2";
其中"w"
是指w(2)的变量值,那么不能直接在java中完成。
但是,可以使用数组和集合代替:
//JLabel Array of 5 elements
JLabel[] labels = new JLabel[5];
int index = 3;
labels[index] = ... //Accesses and assigns index 3
同样,如果你想要一个可增长的数组,可以用ArrayList来完成:
ArrayList<JLabel> labels = new ArrayList<>(); //New empty arraylist of JLabels
//Populate arraylist
labels.add(new JLabel());
int index = 0;
JLabel label = labels.get(index);
label.setText(...);
如果你生活在最前沿,你可能需要考虑阅读this,它显示了Java 8在某种程度上有限(但仍然可能)通过反射获得单个变量名称的能力。