List 的 TextArea 输出

TextArea output from a List

我在修改 JTextArea(来自 JFrame)中的列表(称为 "cds")的输出时遇到问题......

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

但是,这些对象在一个大列表中是 st运行g 和逗号.... 是否有任何代码可以删除逗号,并在每个对象之间创建一个换行符......

数组可以任意大,所以简单地做一个collections.size(0)然后/n然后collections.size(1)然后/n......不会工作。

我的代码如下:

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.,我目前没有遇到删除括号的问题,但如果有人知道一个简单的方法,那也很棒。

使用append代替setText和循环


解决方案

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

输出

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

....
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()方法。