【问题标题】:How to display an array of integers in a JTextArea?如何在 JTextArea 中显示整数数组?
【发布时间】:2016-04-28 16:30:19
【问题描述】:
for (int j =0; j < marks.size(); j++) {
    analyzeTextArea.setText(j + marks.get(j));
}

上面的代码给了我以下错误:

required: java.lang.String found: int

【问题讨论】:

  • 了解基础知识后,请考虑使用JTable(二维数组)或JList

标签: java swing compiler-errors jtextarea


【解决方案1】:

我猜marks.get(j) 会给你一个整数。因此,当您执行j + marks.get(j) 时,您将marks.get(j) 的值添加到j 的值中。

所以你以整数结尾作为j + marks.get(j) 的结果。但是setText 需要一个字符串。

您现在有多种可能性,具体取决于您的需要。

analyzeTextArea.setText(Integer.toString(j + marks.get(j)));

这种情况还是先加法再转成String,以尊重setText参数类型。

有了这个:

analyzeTextArea.setText("" + (j + marks.get(j)));

"" 告诉参数将是一个字符串,然后您将连接jmarks.get(j)。因此,例如,对于第一个循环,您将拥有以 0 开头的内容

现在在循环中使用setText 并没有什么意义,因为只会使用循环中设置的最后一个值,您可能应该使用JTextArea#append(String)

【讨论】:

  • +1 表示“这就是它不起作用的原因,试试这个”而不是“这样做,它有效”
【解决方案2】:

你需要做这样的事情:

analyzeTextArea.setText("" + (j + marks.get(j)));

【讨论】:

    【解决方案3】:
    analyzeTextArea.setText(Integer.toString(j + marks.get(j)));
    

    【讨论】:

      【解决方案4】:

      试试这个,

      for (int j =0; j < marks.size(); j++) {
          analyzeTextArea.setText(j + marks.get(j)+"");
          }
      

      【讨论】:

      • 第二种方案会报错,因为int没有toString()方法
      【解决方案5】:

      这应该可以,但您应该使用 .append() 而不是 .setText()。因为 .setText() 删除之前的内容并写入。但是 .append() 只是添加信息

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-27
        • 2019-10-21
        • 1970-01-01
        • 2014-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多