如何向用户显示数组

时间:2008-11-28 04:30:22

标签: java arrays

我正在尝试以类似JTextField的方式显示有序数组的内容。

for (int i=0; i<array.length; i++) {
    this.textField.setText(array[i]);
}

这不会有两个原因。第一个次要原因:如果数组长度为4,则jtextfield将其值重置4次,而不是将每个元素附加到最后一个。 第二个原因:JTextField只接受字符串。我在Swing中找不到任何可以让我向用户显示整数的东西。有什么帮助吗?

2 个答案:

答案 0 :(得分:8)

快速&amp;肮脏的答案

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而不是文本字段。