java - 如果单元格包含 NULL,则 JTable + getColumnClass() 返回 null

标签 java swing jtable

我正在尝试通过扩展 DefaultTableModel 和覆盖 getColumnClass() 来对我的 JTable 进行排序,如下所示:

 public Class getColumnClass(int c) {     

  return getValueAt(0, c).getClass();
}

如果该表格单元格中没有 NULL,它工作得很好。 所以我按以下方式对其进行了修改:

  public Class getColumnClass(int c) {


  for(int rowIndex = 0; rowIndex < data.size(); rowIndex++){

    Object[] row = data.get(rowIndex);

    if (row[c] != null) {
        return getValueAt(rowIndex, c).getClass();
    }
  }
  return getValueAt(0, c).getClass();
 }

现在,如果列中至少有一个非 NULL 的单元格,它仍然可以正常工作。 但是,如果该列中的所有单元格都是 NULL,它就不起作用(因为它返回 nullPointerException)。

请…………帮助…… 提前致谢

哈桑

最佳答案

您知道您希望每一列事先包含什么类型吗?

如果是这样,那么您可以用类对象构建一个数组,然后只返回适当的一个。

Class[] columns = new Class[]{String.class, String.class, Date.class};

public Class getColumnClass(int c) {  
     return columns[c];
}

关于java - 如果单元格包含 NULL,则 JTable + getColumnClass() 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8229187/

相关文章:

java - 如何将 DefaultTableModel 对象的数据放入 DefaultTableModel 的子类中

java - 动态更改 JTable 字体大小

java - 将 Spinners 的文本发送到邮件

java - 包含 ImageIcon 的 JLabel 不会重新绘制

java - .setLocation 和 .setBounds 不适用于 JLabel! (和 JButton)

java - 使用计时器刷新 JLabel 中的图像

java - 是否可以重载abstractTableModel 上的getValueAt 方法?

java - 无法在 mac 终端中设置类路径

java - 在不使用 null 的情况下编写代码

java - 为什么 Stream Parallel() 不使用所有可用线程?