我正在尝试以类似JTextField的方式显示有序数组的内容。
for (int i=0; i<array.length; i++) {
this.textField.setText(array[i]);
}
这不会有两个原因。第一个次要原因:如果数组长度为4,则jtextfield将其值重置4次,而不是将每个元素附加到最后一个。 第二个原因:JTextField只接受字符串。我在Swing中找不到任何可以让我向用户显示整数的东西。有什么帮助吗?
答案 0 :(得分:8)
for (int i=0; i<array.length; i++) {
this.myJTextField.setText(this.myJTextField.getText() + ", " + array[i]);
}
首先,调用成员变量JTextField
可能并不明智。由于这个类已经被这样调用,它会让读者感到困惑。例如,Java状态成员变量中的命名约定类似于myTextField
。 (注意:原始问题已更改)。
请注意,您也可以通过简单地执行"" + number
将任意数字转换为字符串。如果您有许多字符串,请考虑使用字符串构建器,因为它更快并且不会多次更新GUI元素:(还修复了第一个项目之前的初始", "
,如上所述)
StringBuilder builder = new StringBuilder();
for (int i=0; i<array.length; i++) {
builder.append(array[i]));
if(i + 1 != array.length)
builder.append(", ");
}
this.myJTextField.setText(builder.toString());
或者,你可以使用它:
this.myJTextField.setText(Arrays.toString(array));
它看起来像[1, 4, 5, 6]
。
答案 1 :(得分:0)
您可以将所有这些整数连接成一个字符串,然后在文本字段中显示该值。
StringBuilder sb = new StringBuilder();
for( int i : array ) { // <-- alternative way to iterate the array
sb.append( i );
sb.append( ", " );
}
sb.delete(sb.length()-2, sb.length()-1); // trim the extra ","
textField.setText( sb.toString() );
您也可以使用JTextArea而不是文本字段。