我正在使用带有ItemListener的JComboBox。当值改变时,itemStateChanged事件被调用两次。第一次调用,ItemEvent显示选择的原始项目。第二次显示用户刚刚选择的项目。下面是一些测试代码:publicTester(){JComboBoxbox=newJComboBox();box.addItem("One");box.addItem("Two");box.addItem("Three");box.addItem("Four");box.addItemListener(newItemListener(){publicvoiditemStateChanged
Java7中的JCombobox已更新为使用泛型-我一直认为这有点疏忽,所以我很高兴看到这种变化。但是,当尝试以这种方式使用JCombobox时,我意识到我希望使用这些泛型类型的方法stilljustreturnObject.这到底是为什么?对我来说,这似乎是一个愚蠢的设计决定。我意识到底层ListModel有一个通用的getElementAt()方法,所以我将使用它来代替-但它有点迂回地做一些看起来可能在JComboBox本身上被改变的事情。 最佳答案 我想你指的是getSelectedItem()?原因是如果组合框是可编辑的,则
每当从JComboBox做出选择时,我都会尝试触发一个事件。我遇到的问题是没有明显的addSelectionListener()方法。我尝试使用actionPerformed(),但它永远不会触发。没有覆盖JComboBox的模型,我没有想法。如何在JComboBox上获得选择更改的通知?**编辑:我必须道歉。事实证明我使用了一个行为不端的JComboBox子类,但由于您的回答很好,所以我会留下这个问题。 最佳答案 它应该响应ActionListeners,像这样:combo.addActionListener(newActionL