JTable标题在排序和非排序部分之间分割

时间:2013-07-25 14:50:22

标签: java swing sorting jtable tableheader

目前在Jtable中,每个列标题中都有一个名称空间,然后是一个组合框。单击标题名称时,我希望仍然可以进行默认排序,但是当单击组合框时,我希望它不会排序。

单击组合框时我尝试使用mouseclick事件,但AWT事件处理程序已经在我的监听器之前收到了该事件。

TableRowSorter声明为:

TableRowSorter<TableModel> tableRowSorter = (TableRowSorter<TableModel>) mainTable.getRowSorter();
    tableRowSorter.addRowSorterListener(new RowSorterListener() {
        @Override
        public void sorterChanged(RowSorterEvent e) {
            if (!(mainTable.getSelectedRow() < 0)) {
                Rectangle r = mainTable.getCellRect(mainTable.getSelectedRow(), 0, true);
                Point p = mainScrollPane.getViewport().getViewPosition();
                r.setLocation(r.x, r.y - p.y);
                mainScrollPane.getViewport().scrollRectToVisible(r);
            }
        }
    });

//Section for popupmenu located in jtable class
    aggregationMenu = new JPopupMenu();
    aggregationMenu.setInvoker(this);
    for (AggregationType type : AggregationType.values()) {
        if (type == AggregationType.GROUP)
            continue;
        JMenuItem mi = new JMenuItem();
        mi.setText(type.toString());
        mi.addActionListener(this);
        aggregationMenu.add(mi);
    }

0 个答案:

没有答案