我想在一个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]);
}
答案 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]", ""));
注: 如果数组元素包含空格(对不起),这将不适用。