我在构造函数里面hierarchyCombo.setSelectedItem(0);怎么不会去触发ItemListener事件?
hierarchyCombo.addItemListener(new HierarchyComboItemListener());private class HierarchyComboItemListener implements ItemListener {
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
~~~~~
}
}
}

解决方案 »

  1.   

    itemStateChanged只有在改变了所选的item之后才响应如果hierarchyCombo的items不为空,则缺省选中第一个,hierarchyCombo.setSelectedItem(0);时并没有引起所选项的变化,当然不会响应了。还有,只有在addItemListener语句之后引发的项改变才会响应该事件
      

  2.   

    那如果要在设置默认值时候触发 
    ItemListener   怎么做?
      

  3.   


    private class HierarchyComboItemListener implements ItemListener

        public   void   itemStateChanged(ItemEvent   e)
        { 
        if (e.getStateChange()   ==   ItemEvent.SELECTED)
            { 
                doSth();
            } 
        } 
    }private void doSth()
    {
        //…………
    }
    如上所示,在响应不到的地方直接调用 doSth()