【问题标题】:Displaying an ArrayList?显示一个 ArrayList?
【发布时间】:2012-05-21 16:25:35
【问题描述】:
ArrayList <String> cdcollection = new ArrayList();

private void initButtonActionPerformed(java.awt.event.ActionEvent evt) {
    Collections.addAll(cdcollection, "small", "mayre", "brown", "evner", "rain" );
    initButton.setEnabled(false);

}

private void displayButtonActionPerformed(java.awt.event.ActionEvent evt) {

          for (int i = 0; i < cdcollection.size(); i++)  {
          mainTextArea.setText(cdcollection.get(i));
    }
}

private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {
    cdcollection.add(cdtitleInput.getText());
}

private void removeButtonActionPerformed(java.awt.event.ActionEvent evt) {
    cdcollection.remove(cdcollection.size()-1);
}

当我运行它并单击显示按钮时,只会出现最后一个 cd 标题(雨)... 我怎样才能让所有五个 cd 标题都出现在一行上?

【问题讨论】:

    标签: java arrays list


    【解决方案1】:

    使用Append() 代替setText()

    【讨论】:

    • 您可以使用 \n 进行行拆分。如果必须,您还可以在使用 append() 之前使用 setText() 清除该框。
    【解决方案2】:

    displayButtonActionPerformed方法做如下修改。

    private void displayButtonActionPerformed(java.awt.event.ActionEvent evt) {    
        String str = "";
        for (int i = 0; i < cdcollection.size(); i++)  {
              str = str + cdcollection.get(i);
        }
        mainTextArea.setText(str);
    }
    

    【讨论】:

    • 谢谢,这效果更好,因为 append 会在按下时添加整个集合来影响添加按钮。
    • 简化的 for 循环不适合你?
    【解决方案3】:

    使用简化的 for 循环。

    private void displayButtonActionPerformed (ActionEvent evt) {    
        for (String cd : cdcollection) {
              mainTextArea.append (cd + "\n");
        }
    }
    

    它通常可以防止一个错误,它通常更短并且可读性更好。

    【讨论】:

      猜你喜欢
      • 2017-02-13
      • 2014-09-08
      • 2011-05-20
      • 2017-06-06
      • 2015-04-02
      • 1970-01-01
      • 1970-01-01
      • 2016-04-18
      • 1970-01-01
      相关资源
      最近更新 更多