目前在 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);
}