Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JTable + getColumnClass() returns null if a cell contains NULL

Tags:

java

swing

jtable

I'm trying to sort my JTable by extending DefaultTableModel and overrriding getColumnClass() as follows:

 public Class getColumnClass(int c) {     

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

It works perfectly fine if there is no NULL in that table cell. So I modified it in following way:

  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();
 }

Now, again, it works fine if there is atleast one cell in the column which is not NULL. But if all of the cells in the column is NULL, it doesn't work ('casue it returns nullPointerException).

Please ............help.... thanks in advance

Hasan

like image 607
Hasan Avatar asked Feb 22 '23 08:02

Hasan


1 Answers

Do you know what type you expect each column to contain before hand?

If so then you can build an array with the class objects and just return the appropriate one.

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

public Class getColumnClass(int c) {  
     return columns[c];
}
like image 154
Eric Rosenberg Avatar answered Mar 24 '23 11:03

Eric Rosenberg