gpt4 book ai didi

java - 检测 JComboBox 编辑

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:21:52 27 4
gpt4 key购买 nike

我有一个 JComboBox,我想每秒从数据库中检索一组字符串并将这些字符串设置为 JComboBox 的内容,并将其中一个设置为当前选定的值。但我也希望用户能够编辑 JComboBox 并将值添加到数据库并将其设置为当前值。

我希望能够检测到字符何时输入到 JComboBox 中,因此我可以重置倒计时,只要它不为零,它就会阻止更新 JComboBox。我的第一直觉是使用 KeyListener,但是关于组合框的 Java 教程是这样说的,

Although JComboBox inherits methods to register listeners for low-level events — focus, key, and mouse events, for example — we recommend that you don't listen for low-level events on a combo box.

他们继续说触发的事件可能会根据外观和感觉而改变。

最佳答案

这有点冒险,但它应该可以监听编辑器组件(一个 JTextField)上的文档更新。

    JComboBox cb = new JComboBox();
Component editor = cb.getEditor().getEditorComponent();
if (editor instanceof JTextField) {
((JTextField) editor).getDocument().addDocumentListener(new DocumentListener() {
@Override
public void insertUpdate(DocumentEvent documentEvent) {
//To change body of implemented methods use File | Settings | File Templates.
}

@Override
public void removeUpdate(DocumentEvent documentEvent) {
//To change body of implemented methods use File | Settings | File Templates.
}

@Override
public void changedUpdate(DocumentEvent documentEvent) {
//To change body of implemented methods use File | Settings | File Templates.
}
});
}

那些 *Update(DocumentEvent documentEvent) 方法应该为从 JComboBox 中键入/删除的每个字符调用。

关于java - 检测 JComboBox 编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8949466/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com