JLable的名字可以与int数据结合吗?

时间:2014-04-04 07:04:49

标签: java swing numbers jlabel

我知道 第一个代码是正确的,第二个代码是不正确的。 如果我想将i插入JLabel。它怎么能实现?

JLabel label_1 = new JLabel();
int i = 1; JLabel label_i = new JLabel();

3 个答案:

答案 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在某种程度上有限(但仍然可能)通过反射获得单个变量名称的能力。