当我点击标签
时,我添加了listselectionlistenertable1 = new ListSelectionListener()
{
public void valueChanged(ListSelectionEvent e)
{
action(e);
}
};
ListSelectionModel SM = table1A.getSelectionModel();
SM.addListSelectionListener(table1);
SM = table1B.getSelectionModel();
SM.addListSelectionListener(table1);
当我点击表格的行时,动作(e)功能会多次触发。
private void action(ListSelectionEvent e)
{
ListSelectionModel lsm = (ListSelectionModel) e.getSource();
if (lsm.getValueIsAdjusting())
{
// nothing
}
else
{
// my action here
}
}
动作(e)应该触发两次,一次是鼠标点击,一次是鼠标释放。我曾使用getValueIsAdjusting()来反击鼠标点击,因此我的操作应该运行一次。但是,我的行动很多次。我可以看到这一点,因为我需要在我的行动中加入一个忙碌的对话框。
答案 0 :(得分:1)
您需要将“value is Adjusting”设置为true。
SM.setValueIsAdjusting(true);
请将SM重命名为sM,因为java属性应以小写字母开头。(Java Convention)