gpt4 book ai didi

java - 如何从文档监听器更新 JComboBox 的列表?

转载 作者:行者123 更新时间:2023-12-01 23:55:07 25 4
gpt4 key购买 nike

我正在编写一个自定义 JComboBox,每当用户键入内容时我想更新 JComboBox 的下拉菜单。我遇到的问题是,一旦我的 DocumentListener 看到更新,当我尝试将项目添加到列表中时,我会收到错误消息。以下是不起作用的基本示例:

public class InputField extends JComboBox<String> implements DocumentListener{

//when something is typed, gets suggestions and adds them to the popup
@Override
public void insertUpdate(DocumentEvent ev) {
try{
giveSuggestions(ev);
}
catch(StringIndexOutOfBoundsException e){

}
}
private void giveSuggestions(DocumentEvent ev){
this.addItem("ok");
}

这实际上并不是我的程序的工作方式(我不只是在每次有人键入内容时添加“确定”),但让它工作将允许我以它需要的工作方式实现我的自定义 JComboBox。预先感谢您的帮助。

编辑:我收到的错误消息是:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Attempt to mutate in notification

最佳答案

SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
this.addItem("ok");
// I can never remember the correct way to invoke a class method
// from witin and anonymous inner class
//InputField.addItem("ok");
}
});

关于java - 如何从文档监听器更新 JComboBox 的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15750289/

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