2014-05-22 63 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]", "")); 

注: 如果數組元素中含有空間(對不起爲該)這將不適用。