0

如何确保我的 JTable 中只有一些列是可选的(意味着它们路由到我的 ListSelectionListener)?

我添加了我的听众,如下所示:

table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {...});
4

1 回答 1

3

最简单的解决方案可能是创建自己的选择模型:

table.getColumnModel().setSelectionModel(new DefaultListSelectionModel() {
    private boolean isSelectable(int index0, int index1) {
        // TODO: Decide if this column index is selectable
        return true;
    }

    @Override
    public void setSelectionInterval(int index0, int index1) {
        if(isSelectable(index0, index1)) {
            super.setSelectionInterval(index0, index1);
        }
    }

    @Override
    public void addSelectionInterval(int index0, int index1) {
        if(isSelectable(index0, index1)) {
            super.addSelectionInterval(index0, index1);
        }
    }
});

另请注意,如果您想侦听列选择,您希望将侦听器添加到列模型的选择模型(而不是表的选择模型)。

于 2012-12-13T21:57:48.383 回答