如何仅对JTable中的指定列进行排序?

时间:2015-07-27 12:01:51

标签: java sorting jtable

我有一个包含 |列的表格名称|开始|完成|时间|放置|点数| 我希望在按时间排序表时保持地点和点分离。如果不创建两个表,有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

所以,我想通过共享TableCellRenderer建议使用this link作为地方和点数列。

首先,我创建了CustomTableCellRenderer并使用此方法设置值:

public class CustomCellRenderer extends JLabel implements TableCellRenderer{

    ...

    @Override
    public Component getTableCellRendererComponent(JTable table, Object value,
    boolean isSelected, boolean hasFocus, int row, int column) {

        if(column==this.columnPlace){
            // set Place
         setText(Integer.toString(row+1));
        }
        else{
         // set Points depending on competitorsCount and row
            setText(Integer.toString(points[competitorsCount-1][row]));
        }
        return this;
    }
}

然后我为这些列设置了这个自定义渲染器:

    CustomCellRenderer customRenderer = new CustomCellRenderer(competitorsCount);
    customRenderer.setHorizontalAlignment(JLabel.CENTER);
    tableColumnModel.getColumn(columnPlace).setCellRenderer(customRenderer);
    tableColumnModel.getColumn(columnPoints).setCellRenderer(customRenderer);