在一个jlabel中显示数组值

时间:2014-05-22 12:06:45

标签: java arrays swing for-loop jlabel

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

我已尝试使用循环(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]);
}

5 个答案:

答案 0 :(得分:2)

您的代码不起作用,因为您使用第一个字符串设置标签值,然后是第二个字符串,然后是第三个字符串...您需要将所有字符串连接成一个,然后使用此值设置标签文本:< / p>

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

注意:您也可以使用StringBuilder而不是直接连接到String。

答案 1 :(得分:1)

每次拨打labelWord.setText()时都会替换文字。

在设置之前构建整个字符串

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

答案 2 :(得分:1)

您每次循环调用setText()都会自行覆盖它。您需要通过执行以下操作将其附加到文本中:

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

希望这有帮助。

答案 3 :(得分:1)

在不使用StringBuilder或类似的东西的情况下,最简单的方法是使用另一个字符串变量

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

您基本上只是更改数组中每个项目的标签值,而不是将其添加到最后

答案 4 :(得分:1)

您想知道的另一种有趣的方式(在您的案例中

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

<强>输出

hello

直接,

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

注: 如果数组元素包含空格(对不起),这将不适用。