从List输出TextArea

时间:2015-12-13 18:03:30

标签: java arrays swing jframe jtextarea

我在修改JTextArea(来自JFrame)中的List(称为“cds”)的输出时遇到了麻烦......

当我运行displayButtonActionPerformed时,它会将数组中的所有对象放入JTextArea。

然而,这些对象在一个大清单中与逗号串在一起.... 是否有任何代码可以删除逗号,并在每个对象之间创建换行符.....

数组可以任意大,所以简单地执行collections.size(0)然后/ n然后collections.size(1)然后/n's将无法工作。

我的代码如下:

private void displayButtonActionPerformed(java.awt.event.ActionEvent evt) {                                              
    // sorts then displays entries in the array
    Collections.sort(cds, String.CASE_INSENSITIVE_ORDER);
    outputArea.setText(cds.toString());
}

有问题的一行是:

outputArea.setText(cds.toString());

这就是他们在JTextArea中的样子:

[Abbey Road -- Beatles, Alive -- Doors, Gimme Shelter -- Rolling Stones, Hey Jude -- Beatles, Staying Alive -- Beegees]

这就是他们在JTextArea中应该看起来的样子:

Abbey Road -- Beatles
Alive -- Doors
Gimme Shelter -- Rolling Stones
Hey Jude -- Beatles
Staying Alive -- Beegees

P.S。,我目前没有删除括号的麻烦,但如果有人知道一个简单的方法,那也很棒。

2 个答案:

答案 0 :(得分:2)

使用append代替setText和循环

解决方案

for (Object o : cds){
    outputArea.append(o + "\n");
}

输出

enter image description here

答案 1 :(得分:0)

为了获得您想要的结果,您可以创建一个以数组作为参数的类或函数,并以您喜欢的格式打印出其中的项目:

....
public static String printArray (String[] textArray) {
    String output = "";
    for (String s : textArray) {
        output += s + '\n';
    }
    return output;
}
...
private void displayButtonActionPerformed(java.awt.event.ActionEvent evt) {                                              
    // sorts then displays entries in the array
    Collections.sort(cds, String.CASE_INSENSITIVE_ORDER);

    outputArea.setText(printArray(cds));  //Change this line
}

在我显示的方法中添加类似的方法后,更改displayButtonActionPerformed()方法中的最后一行,如图所示。

我在类似的例子中测试了printArray()方法。