2014-05-22 64 views
0

我想在一个Jlabel中显示我的String数组的值。在一个jlabel中显示数组值

我试过一个循环(for),但结果是新的字母覆盖了前一个。 我不明白我怎么能显示下面的字母。

labelWord是我的Jlabel的variableName。

String myArray[] = new String[4]; 
myArray[0] = "h"; 
myArray[1] = "e"; 
myArray[2] = "l"; 
myArray[3] = "l"; 
myArray[4] = "o"; 

和我的循环:

for (int j = 0; j <= myArray.length; j++) { 
    labelWord.setText(myArray[j]); 
} 
+2

只需尝试'labelWord.setText(labelWord.getText()+ myArray [j]);' – Braj

+0

[在JLabel中附加文本]的可能重复(http://stackoverflow.com/questions/9717121/append-text -in-jlabel) – Braj

+0

非常感谢! – Skunk

回答

2

您的代码不工作,因为你设置由第1字符串的标签值,然后第二个,然后第三个......一个你需要concatene所有的字符串到一个然后设置标签文本使用该值:

String value =""; 
for (int j = 0; j <= myArray.length; j++) { 
       value += myArray[j];} 
labelWord.setText(value); 

注意:你也可以使用,而不是直接串联到字符串StringBuilder的。

+0

谢谢,马问题解决了! – Skunk

1

您每次拨打labelWord.setText()即表示您正在更换文字。在设定前

StringBuilder builder = new StringBuilder(); 
for (int j = 0; j <= myArray.length; j++) { 
    builder.append(myArray[j]); 
} 
labelWord.setText(builder.toString()); 
+0

谢谢!现在没关系! – Skunk

1

您是通过调用循环setText()每次自己覆盖它

只是生成整个字符串。你需要附加到文本做:

labelWord.setText(labelWord.getText() + myArray[j]); 

希望这会有所帮助。

+0

谢谢!现在好了 – Skunk

+0

请选择一个帮助你接受的答案。玩得开心编码:) – Sanjeev

1

要做到这一点,而无需使用StringBuilder的或类似的东西会使用另一个字符串变量

String myLabelText = ""; 
for (int j = 0; j <= myArray.length; j++) { 
      myLabelText = myLabelText + myArray[j]; 
} 
labelWord.setText(myLabelText); 

你基本上只是改变标签的价值为每个项目在数组中,不添加的最简单方法它到底

1

一多,你想有趣的方式来了解(你的情况

String arr[]={"h","e","l","l","o"}; 
System.out.println(Arrays.toString(arr).replaceAll("[\\]\\[,\\s]", "")); 

OUTPUT

hello 

所以直接,

jlabel.setText(Arrays.toString(arr).replaceAll("[\\]\\[,\\s]", "")); 

注: 如果数组元素中含有空间(对不起为该)这将不适用。