我在JTable中实现了一个自动完成组合框,似乎一切正常,但是当我启动model.setSelectedItem(item);在组合列表中选择当前项时,组合框将失去焦点。

我们可以覆盖此功能吗?

最佳答案

在您的情况下,您不应使用JCombobox#setSelectedItem.。此方法调用将引发ActionEvent,这可能导致焦点移至下一个组件。尝试改用

JCombobox combo = ...
combo.getModel().setSelectedItem(...);


更新:我查看了实现的代码,看来您正在寻找使用JComboboBox#setSelectedIndex。当您键入一个字符并且列表显示从键入的字符开始的下一项时,也会使用此方法。

10-06 05:11