前言
构建如下监听器
class DemoListListener implements ListSelectionListener {
public void valueChanged (ListSelectionEvent e) {
System.out.println("DemoListListener ");
// do something
}
}
在JTable选中行的时候会调用两次,即运行结果为:
DemoListListener
DemoListListener
Solution
- 检查当前行是否正在被修改
调用e.getValueIsAdjusting();
class DemoListListener implements ListSelectionListener {
public void valueChanged (ListSelectionEvent e) {
if(e.getValuesAddjusting())return;//检查是否正在被修改!
System.out.println("DemoListListener ");
// do something
}
}
Reference:
ListSelectionListener invoked twice
e.getValueIsAdjusting is what you are looking for. As stated in the javadoc of that method
- 添加MouseListener,实现MouseAdapter
jTable.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
//do something
}
});
1023



被折叠的 条评论
为什么被折叠?



