我有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();
}
}
答案 0 :(得分:1)
一些小代码有助于确切知道你在做什么,但我的猜测是你的第一个组合是可编辑的,你使用在每个击键时调用的事件监听器来填充第二个组合。
根据documentation使用ActionListener
时,组合可编辑应该可以正常工作:
选择时
ActionListener
会收到ActionEvent
已经成型。如果组合框是可编辑的,那么ActionEvent将是 编辑停止时触发。
如果您使用的是ActionListener
,但仍然没有找到符合您需求的行为,您可以通过在第一个组合上添加FocusListener
来填充第二个组合并移动填充该代码的代码它的focusLost()
方法的第二个。
如果此选项也不符合您的需求,我建议您阅读documentation以了解不同的可用事件,或详细说明您要查找的行为,以便有人可能会提出建议您需要做的事件处理。