java swing jlist addListSelectionListener ListSelectionListener调用两次
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java swing jlist addListSelectionListener ListSelectionListener调用两次,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1791字,纯文字阅读大概需要3分钟。
内容图文
我有这个错误,填充JList后,我尝试检索所选项的值.但是当我这样做时,它会被调用两次.
这是我的代码:
public CaveAdventureUI(CaveGame game) {
initComponents();
playerCarryItemModel = new DefaultListModel();
caveCarryItemModel = new DefaultListModel();
this.caveGame = game;
this.world = game.getCaveWorld();
listSelectionModel = this.jListCaveCarryItems.getSelectionModel();
listSelectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
this.listSelectionModel.addListSelectionListener( new SharedListSelectionHandler());
//for debug purpose,see the world grid in console
game.drawCaves();
//new JComboBox(Mood.values());
createGridQuarePanels();
//world.startGame(GameLevel.Beginner);
update();
}
private class SharedListSelectionHandler implements ListSelectionListener {
public void valueChanged(ListSelectionEvent listSelectionEvent) {
ListSelectionModel lsm = (ListSelectionModel)listSelectionEvent.getSource();
if (!lsm.isSelectionEmpty()) {
Occupant opt = mapOccupants.get(Integer.toString(jListCaveCarryItems.getSelectedIndex()));
System.out.println("selected index :" +jListCaveCarryItems.getSelectedIndex() +"[["+opt.getName()+"]]");
}
}
}
在上面的代码中,当我在jList:jListCaveCarryItems上进行选择时,它会触发SharedListSelectionHandler类.但是,当我单击JList时,它会打印出两次所选的值.
任何人都可以帮我搞清楚吗?
谢谢&问候,
解决方法:
2选择JList时调度ListSelectionEvents – 选择事件期间的一个和选择事件之后的另一个.从How to Write a List Selection Listener起
The isAdjusting flag is true if the user is still manipulating the selection, and false if the user has finished changing the selection.
因此,请确保未调整ListSelectionEvent值.
public void valueChanged( ListSelectionEvent listSelectionEvent) {
if ( !listSelectionEvent.getValueIsAdjusting() && !lsm.isSelectionEmpty()) {
Occupant opt = ...
...
}
}
内容总结
以上是互联网集市为您收集整理的java swing jlist addListSelectionListener ListSelectionListener调用两次全部内容,希望文章能够帮你解决java swing jlist addListSelectionListener ListSelectionListener调用两次所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。