首页 > 解决方案 > 我想在java中将表格数据打印到Textarea

问题描述

在java中,我想将jTable(Table)数据打印到Textarea(我的代码中的“AREA”),但是当我运行下面给出的这段代码时,它不会打印文本区域中的所有行和列数据并在输出中显示一条消息那

输出错误是

" 线程 "AWT-EventQueue-0" java.lang.ClassCastException 中的异常:无法将类 java.lang.Integer 转换为类 java.lang.String(java.lang.Integer 和 java.lang.String 在模块 java.lang.String 中)加载程序'bootstrap'的基础)“

我使用的代码

DefaultTableModel model1  = (DefaultTableModel) BILL_table.getModel();
int nRow = model1.getRowCount(), nCol = model1.getColumnCount();
Object [][] tableData = new Object [nRow][nCol];
for(int i = 0 ; i < nRow ; i++)
{ 
   for(int j = 0 ; j< nCol ; j++)
   {
   tableData[i][j] = model1.getValueAt(i, j);
   AREA.append ((String) tableData [i][j] + "\t");

   }
   AREA.append("\n");
}

我的表中的数据

在我的区域(textarea)中打印的输出

标签: java

解决方案


问题大概出在这里:

AREA.append ((String) tableData [i][j] + "\t");

它似乎tableData[i][j]Integer(a number) 的一个实例,当然不能转换为字符串。正确的做法是其转换为字符串:

AREA.append (tableData[i][j].toString() + "\t");

请注意,您甚至不必明确地执行此操作,因为只要您将对象与字符串连接起来,该转换就会自动发生。所以你可以写

AREA.append (tableData[i][j] + "\t");

即使tableData[i][j]碰巧是后者也会起作用null(在这种情况下前者会抛出 a NullPointerException)。


推荐阅读