Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何设置自定义tablemodel的RowSorter?_Java_Swing_Jtable_Tablemodel_Tablerowsorter - Fatal编程技术网

Java 如何设置自定义tablemodel的RowSorter?

Java 如何设置自定义tablemodel的RowSorter?,java,swing,jtable,tablemodel,tablerowsorter,Java,Swing,Jtable,Tablemodel,Tablerowsorter,我定义了一个自定义的tablemodel,如下所示 class TModel extends AbstractTableModel {   Object col[] = null;   Object[][] data = null;      public void setCollen(Object[] col) {     this.col = col;   }   public void setObj(Object[][] oo) {     this.data = oo;   }

我定义了一个自定义的tablemodel,如下所示

  class TModel extends AbstractTableModel {

  Object col[] = null;
  Object[][] data = null;
  
  public void setCollen(Object[] col) {
    this.col = col;
  }

  public void setObj(Object[][] oo) {
    this.data = oo;
  }

  public int getColumnCount() {
    return col.length;
  }

  public int getRowCount() {
    return data.length;
  }

  public Object getValueAt(int row, int col) {
    return data[row][col];
  }

  public String getColumnName(int column) {
    return (String) col[column];
  }

  public boolean isCellEditable(int row, int col) {
    return false;
  }

  public void setValueAt(Object aValue, int row, int column) {
    data[row][column] = aValue;
  }

  public void clear() {
    data = null;
  }
}
我定义了一个这样的表

TModel tableModel = new TModel();
JTable table = new JTable(tableModel);
     table.setRowSorter(new TableRowSorter(tableModel));
现在我想使用方法
table.setRowSorter()
对表中的数据进行排序

我试着写这样的代码

TModel tableModel = new TModel();
JTable table = new JTable(tableModel);
     table.setRowSorter(new TableRowSorter(tableModel));
显然这是错误的

请帮帮我

  • 您的
    AbstractTableModel
    错误,未完成,缺少重要通知程序f.e.
    FireTableCellUpdate(行、列)
    setValueAt
    中,即

  • 对于基本排序功能,您可以定义
    table.setAutoCreateRowSorter(true)

  • 阅读

  • 我建议使用
    DefaultTableModel
    ,对于基于
    Object[][]
    Vector
    的数据结构,无需重写所有通知程序是否正确实现