【问题标题】:Null Pointer Exception when trying to retrieve data from JTable in Swing尝试从 Swing 中的 JTable 检索数据时出现空指针异常
【发布时间】:2015-02-26 18:51:30
【问题描述】:

我有一个 JTable,我希望遍历该表的行和列以检索每个值,然后将该值添加到二维数组(矩阵)。但是,当尝试提取表中的最后一个值时,我得到了 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)

【问题讨论】:

  • 变量rowscols是如何定义的,它们有什么值?
  • 请添加堆栈跟踪。
  • 行和列是根据来自 JOptionPane 窗口的用户输入简单定义的
  • 检查了吗?似乎表模型返回了一个null 值。
  • 最终表模型值始终返回 null。表模型中的值是整数。

标签: java swing multidimensional-array nullpointerexception jtable


【解决方案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());
        }

    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-27
    相关资源
    最近更新 更多