我正在为我的计算机科学课制作一个GUI并遇到一些麻烦(11年级)
我在用户放入GUI的startValue和endValue之间进行循环
for (int i = startNum; i <= endNum; i++) {
valuesOutputLabel.setText("" + i + "");
}
它将作为GUI jLabel上的endNum输出。如果我做System.out.println(i);它将作为例子输出:
1
2
3
4
5
6
7
如何将输出设为:
1 2 3 4 5 6 7 8
我为system.out.print提供了答案但是如何使用jLabel进行此操作?
答案 0 :(得分:4)
StringBuilder sb = new StringBuilder();
String separator = "";
for (int i = startNum; i <= endNum; i++){
sb.append(separator);
sb.append(i);
separator = " ";
}
valuesOutputLabel.setText(sb.toString());
使用StringBuilder比String连接更快,内存效率更高。使用String concatentation,在此过程中将创建以下所有字符串:
"1"
"1 "
"1 2"
"1 2 "
"1 2 3"
"1 2 3 "
"1 2 3 4"
"1 2 3 4 "
"1 2 3 4 5"
"1 2 3 4 5 "
"1 2 3 4 5 6"
"1 2 3 4 5 6 "
"1 2 3 4 5 6 7"
使用StringBuilder维护一个可变表示,您可以在结尾处转换为String。
编辑:替代我上面使用的'条件分隔符'方法:
StringBuilder sb = new StringBuilder();
for (int i = startNum; i <= endNum; i++){
sb.append(i).append(' ');
}
if (sb.length() > 0) {
sb.deleteCharAt(sb.length() - 1);
}
valuesOutputLabel.setText(sb.toString());
答案 1 :(得分:3)
您必须存储要在标签上设置的文本:
String text = "";
for (int i = startNum; i <= endNum; i++){
text += i + " ";
}
valuesOutputLabel.setText(text);
或者
for (int i = startNum; i <= endNum; i++){
valuesOutputLabel.setText( valuesOutputLabel.getText() + i + " " );
}
答案 2 :(得分:0)
您需要使用System.out.print(i+" ");
答案 3 :(得分:0)
一种简单的方法是在循环结束时将每个数字添加到字符串中,然后在结尾处打印结果字符串。
类似的东西:
String numString = ""
for (int i = startNum; i <= endNum; i++){
numString += " " + String.valueOf(i);
}
valuesOutputLabel.setText(numString);