1,
ColorRenderer cellRenderer = new ColorRenderer()
    int length = jdbTable1.columnModel.getColumnCount();
    for(int i=0;i<length;i++){
      TableColumn column = columnModel.getColumn(i);
      column.setCellRenderer(cellRenderer);
    }2,我做过类似的,用
getTableHeader().addMouseListener
添加一个鼠标事件Listener
当mouseClicked的时候,给这一列的表头加上一个三角就可以了
然后对Table中的数据按照这一列排序

解决方案 »

  1.   

    终于出现高手了!
    1、这里的ColorRenderer,columnModel是指什么呀!能否再详细点!
    2、加三角标志的问题能否给出代码,我急!
    谢谢!
      

  2.   

    1,ColorRenderer就是你自己定义的那个ColorRenderer类阿2,import java.awt.Component;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.SwingUtilities;
    import javax.swing.table.AbstractTableModel;
    import javax.swing.table.JTableHeader;
    import javax.swing.table.TableCellRenderer;
    import javax.swing.table.TableColumn;
    import javax.swing.table.TableModel;public class SortableTable extends JTable{
      protected int sortedColumn = -1;
      protected boolean sortType;  //true asc, false desc  public void init(){    this.getTableHeader().setDefaultRenderer(new sortTableHeaderRenderer(this.getTableHeader().getDefaultRenderer()));
        this.getTableHeader().addMouseListener(new MouseAdapter(){
          public void mousePressed(MouseEvent e){
            if(SwingUtilities.isLeftMouseButton(e) && e.getClickCount() > 1){
              JTableHeader header = getTableHeader();
              int index = getModelIndex(header.getColumnModel().getColumnIndexAtX(e.getX()));
              if(index == sortedColumn) sortType = !sortType;
               sort(index);
       sortedColumn = index;
       repaint();
            }
          }
        });
      }  public void sort(int column){
      }  public int getModelIndex(int col){
        if(col >= 0 && col < getColumnModel().getColumnCount()){
          TableColumn column = getColumnModel().getColumn(col);
          return column.getModelIndex();
        }
        return -1;
      }  public int getSortedColumn(){
        return sortedColumn;
      }  public void setSortedColumn(int sortedColumn){
        this.sortedColumn =sortedColumn;
      }
      
      public SortableTable(){
       init();
      }
        public SortableTable(TableModel tm){
       super(tm);
    init();
      }
      
      private class sortTableHeaderRenderer
          extends javax.swing.table.DefaultTableCellRenderer {
        TableCellRenderer renderer;
        public sortTableHeaderRenderer(TableCellRenderer renderer) {
          this.renderer = renderer;
        }    public Component getTableCellRendererComponent(JTable table, Object value,
            boolean isSelected, boolean hasFocus, int row, int column) {
              int index = getModelIndex(column);
             String text = sortedColumn==index? (sortType ? "\u25bd":"\u25b3") : "";
             return renderer.getTableCellRendererComponent(table,text+value,isSelected,
                                                           hasFocus,row,column);
        }
      }
      
      public static void main(String args[]){
       JFrame frame = new JFrame();
      
       TableModel tm = new AbstractTableModel(){ public int getRowCount(){
    return 0;
    }
    public int getColumnCount(){
    return 5;
    }
    public String getColumnName(int columnIndex){
    return "Column"+columnIndex;
    }
    public boolean isCellEditable(int rowIndex, int columnIndex){
    return false;
    }
    public Object getValueAt(int rowIndex, int columnIndex){
    return null;
    }
    public void setValueAt(Object aValue, int rowIndex, int columnIndex){}
       };
      
    SortableTable table = new SortableTable();
    table.setModel(tm);
    frame.getContentPane().add(new JScrollPane(table));
    frame.setSize(500,400);
    frame.setVisible(true);
      }}
      

  3.   

    在  public void sort(int column){
      }
    中加上你的排序代码