【问题标题】:How delay populates second JComboBox until first JComboBox gets selected延迟如何填充第二个 JComboBox 直到第一个 JComboBox 被选中
【发布时间】:2013-07-16 19:31:02
【问题描述】:

我有 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();
    }
}                                      

【问题讨论】:

  • `问题是第二个jcombobox去填充每次我输入一个字母`你在什么组合中输入一个字母?
  • populatePartNoFilter() 在第一个组合上执行每个键击。我只想在选择第一个组合时执行 populatePartNoFilter()。

标签: java jcombobox


【解决方案1】:

一些代码将有助于准确了解您在做什么,但我的猜测是您的第一个组合是可编辑的,并且您正在使用在每次击键时调用的事件侦听器填充第二个组合。

根据documentation 在组合可编辑时使用ActionListener 应该可以工作,因为:

ActionListener将在选择有 ActionEvent 被制作。如果组合框是可编辑的,那么 ActionEvent 将是 编辑停止时触发。

如果您使用的是ActionListener,但您仍然找不到符合您需要的行为,您可以通过在第一个组合上添加FocusListener 并将填充第二个组合的代码移至其@ 来填充第二个组合987654322@ 方法。

如果此选项也不能满足您的需求,我建议您阅读documentation 以了解不同的可用事件,或者详细描述您正在寻找的行为,以便有人可能会提出建议你需要做的事件处理。

【讨论】:

    猜你喜欢
    • 2019-11-28
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多