如何确保我的JTable中只有一些列是可选的(这意味着它们会路由到我的ListSelectionListener)?
我添加了我的听众如下:
table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {...});
答案 0 :(得分: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);
}
}
});
另请注意,如果要监听列选择,则需要将侦听器添加到列模型的选择模型(而不是表的选择模型)。