延迟如何填充第二个JComboBox,直到第一个JComboBox被选中

时间:2013-07-16 19:31:03

标签: java jcombobox

我有2个JComboBox,第二个在第一个JComboBox上选中一个项目后从数据库填充。问题是,每次输入一个字母时,第二个jcombobox都会填充。我想让第二个jcombobox等到第一个jcombobox中的项目完成输入。

    private void jobCdItemStateChanged(java.awt.event.ItemEvent evt) {                                       
    if (evt.getStateChange() == ItemEvent.SELECTED
            && jobCd.getSelectedItem() != "Select..."
            && jobCd.getSelectedItem().toString().length() > 0) {
        populatePartNoListFilter();
    }
}                                      

1 个答案:

答案 0 :(得分:1)

一些小代码有助于确切知道你在做什么,但我的猜测是你的第一个组合是可编辑的,你使用在每个击键时调用的事件监听器来填充第二个组合。

根据documentation使用ActionListener时,组合可编辑应该可以正常工作:

  

选择时ActionListener会收到ActionEvent   已经成型。如果组合框是可编辑的,那么ActionEvent将是   编辑停止时触发。

如果您使用的是ActionListener,但仍然没有找到符合您需求的行为,您可以通过在第一个组合上添加FocusListener来填充第二个组合并移动填充该代码的代码它的focusLost()方法的第二个。

如果此选项也不符合您的需求,我建议您阅读documentation以了解不同的可用事件,或详细说明您要查找的行为,以便有人可能会提出建议您需要做的事件处理。