我想在JTable指定的列实现过滤,比如只在姓名这一列进行过滤,不知道应该如何做

解决方案 »

  1.   

    重写JTREE的方法即可
    class ResultSetTableModel extends AbstractTableModel
    {  
       /**
          Constructs the table model.
          @param aResultSet the result set to display.
       */
       public ResultSetTableModel(ResultSet aResultSet)
       {  
          rs = aResultSet;
          try
          {  
             rsmd = rs.getMetaData();
          }
          catch (SQLException e)
          {  
             e.printStackTrace();
          }
       }   public String getColumnName(int c)
       {  
          try
          {  
             return rsmd.getColumnName(c + 1);
          }
          catch (SQLException e)
          {  
             e.printStackTrace();
             return "";
          }
       }   public int getColumnCount()
       {  
          try
          {  
             return rsmd.getColumnCount();
          }
          catch (SQLException e)
          {  
             e.printStackTrace();
             return 0;
          }
       }   public Object getValueAt(int r, int c)
       {  
          try
          {  
             rs.absolute(r + 1);
             return rs.getObject(c + 1);
          }
          catch(SQLException e)
          {  
             e.printStackTrace();
             return null;
          }
       }   public int getRowCount()
       {  
          try
          {  
             rs.last();
             return rs.getRow();
          }
          catch(SQLException e)
          {  
             e.printStackTrace();
             return 0;
          }
       }   private ResultSet rs;
       private ResultSetMetaData rsmd;
    }
      

  2.   

    以下内容来自 jdk 文档