当前位置: 首页 > 面试题库 >

JComboBox itemStateChanged事件一次调用两次

华泳
2023-03-14
问题内容
resultCombo = new JComboBox();
resultCombo.addItemListener(new ItemListener() {
    @Override
    public void itemStateChanged(ItemEvent ie) {
         sampleText=resultCombo.getSelectedItem().toString();
         System.out.println("SampleText : "+sampleText);
    }
});


output:
SampleText : selectedword
SampleText : selectedword

为什么在组合框中选择项目时会两次调用此事件?


问题答案:

对于一次更改,JComoboBox ItemListener确实会被调用两次。一次用于SELECTED事件,一次用于DESELECTED事件。

有关如何编写ItemListener的信息,请参见本教程页面。

基本上你要做的就是

public void itemStateChanged(ItemEvent e) {
    if (e.getStateChange() == ItemEvent.SELECTED) {
        //Do any operations you need to do when an item is selected.
    } else if(e.getStateChange() == ItemEvent.DESELECTED){
        //Do any operations you need to do when an item is de-selected.
    }
}


 类似资料:
  • 在我的应用程序中,我将TextWatcher放在EditText上。当我更改EditText的文本时,TextWatcher的事件会被调用两次。 我正在使用模拟器来运行应用程序。

  • 我试图通过按特定顺序调用的片段实现反向导航:

  • 问题内容: 我有以下代码,但我的问题是该事件被触发了两次。我不知道是什么原因造成的。我怀疑是由供应商前缀引起的,但并非如此。即使我只离开,它仍然会开火两次。 CSS JS 问题答案: 对于您和,每个已转换的属性都会触发。 您可以在访问与事件关联的属性。 没有“ transition s end”事件,因此您可能需要一些技巧,例如仅过滤其中一个过渡属性的回调处理。例如: ps。没有浏览器会触发该事件

  • 我觉得有一个简单的解决办法,但由于某些原因,我不能把我的头围绕它。 我有一个情况,一个按钮必须先点击,才能点击另一个。用户为这2个JButtons选择的选项将决定程序的下一步。这意味着我必须调用actionListener两次,对吗?我如何在一个actionPerformed方法中做到这一点? 如果actionPerformed方法中的(e.getSource()==Square[1][4]&&e

  • 我需要创建一个按钮,如下所示: HTML 如何在JS文档中指定这些函数?

  • 我正在创建一个小费计算器。我在页面上有一个按钮,如果你按下它或者你按下键盘上的enter键,它就会计算出小费。当我按enter键时,计算提示的函数会运行,但随后它会再次运行,尽管我在代码中没有再次调用它。奇怪的是,第二次运行时,它进入存储函数的变量,运行函数。我不知道为什么它会进入一个没有被调用的变量。 我试着调试,看看是否遗漏了一个步骤,是否在某个地方调用了函数两次,但没有。 下面是按键事件: