首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java DefaultListModel

java DefaultListModel
EN

Stack Overflow用户
提问于 2011-05-11 13:29:09
回答 1查看 658关注 0票数 1
代码语言:javascript
复制
if(incasationBegin > 0)
{
  int anwser = JOptionPane.showConfirmDialog(null, Config.QUESTION,"Confirm", JOptionPane.YES_NO_OPTION);
  if(anwser == 1)
  {
      jList0.setSelectedIndex(incasationBegin);
      return;
  }
}
incasationBegin = jList0.getSelectedIndex();

如何在不调用setSelectedIndex操作的情况下实现jList0ListSelectionValueChanged?因为当我单击“确认”弹出选项时,当我单击“否”时,新项目仍然被选中。我尝试在返回前添加incasationBegin =0;,但在第一次单击确认弹出。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-11 14:11:09

让我看看我是否正确地理解了你。您正在向ListSelectionListener中添加JList,并希望阻止对setSelectedIndex的调用触发valueChanged事件,是吗?

您可以在这里尝试许多不同的方法:

setSelectedIndex.

  • Have
  1. 以这样的方式延迟对jList0.addListSelectionListener(...的调用,以至于当您调用jList0.addListSelectionListener(...侦听器valueChanged方法时不存在侦听器,检查某些“已启用的条件”,例如读取boolean isEnabled。在调用setSelectedIndex之前将此条件设置为false,然后将其设置为true。
  2. 在调用setSelectedIndex之前调用jList0.removeListSelectionListener(..。在调用之后再次将侦听器添加到列表中。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5965058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档