我添加listselectionlistener当我一个标签列表选择侦听器的valueChanged发射的2倍以上
table1 = new ListSelectionListener()
{
public void valueChanged(ListSelectionEvent e)
{
action(e);
}
};
ListSelectionModel SM = table1A.getSelectionModel();
SM.addListSelectionListener(table1);
SM = table1B.getSelectionModel();
SM.addListSelectionListener(table1);
当我点击了表的行上点击,行动(五)功能解雇了很多次。
private void action(ListSelectionEvent e)
{
ListSelectionModel lsm = (ListSelectionModel) e.getSource();
if (lsm.getValueIsAdjusting())
{
// nothing
}
else
{
// my action here
}
}
动作(e)应该发射两次,一次是鼠标点击,一次是鼠标释放。我使用getValueIsAdjusting()来对抗鼠标点击,所以我的动作应该运行一次。但是,我的行为运行了很多次。我可以看到这个,因为我需要在我的动作中放置一个忙碌的对话框。
我想您所想一个'MouseListener'的。 'ListSelectionListener's监听所选内容的变化,而不是鼠标点击和释放。这些可能是非常不同的事情。 – gla3dr 2014-08-30 07:17:28
Well'ListSelectionModel SM = table1A.getSelectionModel(); SM.addListSelectionListener(table1); SM = table1B.getSelectionModel(); SM.addListSelectionListener(table1);'似乎是两次添加侦听器! – 2014-08-30 08:45:53
为了更快获得更好的帮助,请发布[MCVE](http://stackoverflow.com/help/mcve)(最小,完整,可验证示例)。 – 2014-08-30 08:46:14