1

我有一个有几列的 JTable。我想让一些列无法排序。我该怎么做?我被困在使用 Java 1.4 中,所以不能选择使用 TableRowSorter,因为它直到 1.6 才引入。

4

3 回答 3

5

(例如,只有pseudo_code,所有内容都是硬编码的,必须覆盖ColumnModel中的列)

if (column >= 0 && column < getModelWrapper().getColumnCount() 
    && isSortable(column)) {

if (column >= 0 && column <=1  /*getModelWrapper().getColumnCount()*/ 
    && isSortable(column)) {

public void toggleSortOrder(int column) {

然后第二列不可排序

  • 如果不能帮助您获得更好的帮助,请尽快发布SSCCE证明您的问题
于 2013-01-16T19:12:21.747 回答
0

将 JTable 上的 rowSorter 设置为空。见http://download.java.net/jdk7/archive/b123/docs/api/javax/swing/JTable.html#setRowSorter(javax.swing.RowSorter )

于 2013-01-16T19:02:01.997 回答
0

如果您想对一些而不是其他进行排序,则必须实现一个侦听器。我用过这样的东西:

table.getTableHeader().addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent e) {
            int col= table.getTableHeader().columnAtPoint(e.getPoint());
            // column number col has been clicked -- sort if necessary,
            // discard the event if sorting is not desired.
            //
        }

    });

注意可以拖放行的表格;你可以禁用它

table.getTableHeader().setReorderingAllowed(false);
于 2013-01-16T19:08:58.283 回答