我有一个JTable,我希望循环遍历该表的行和列以检索每个值,然后将该值添加到2D数组(矩阵)。但是,当尝试提取表中的最后一个值时,我得到NullPointerException。我有以下代码:
DefaultTableModel dtm = (DefaultTableModel) table.getModel();
double [][] matrix = new double[rows][cols];
for(int i=0;i<rows;i++){
for(int j=0;j<cols;j++){
matrix[i][j]=Double.parseDouble((String) dtm.getValueAt(i, j));
}
}
非常感谢任何帮助
Error message Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at java.lang.Double.parseDouble(Unknown Source)
at Inverse.actionPerformed(Inverse.java:102)
答案 0 :(得分:1)
方法
dtm.getValueAt(row, column);
返回一个不是int的对象 然后你试图将一个对象转换为一个字符串,然后解析为一个双精度 给你null
试试这个:
DefaultTableModel dtm = (DefaultTableModel) table.getModel();
double [][] matrix = new double[rows][cols];
for(int i=0;i<rows;i++){
for(int j=0;j<cols;j++){
matrix[i][j]=Double.parseDouble(dtm.getValueAt(i,j).toString());
}
}