gpt4 book ai didi

java - 更新 JList 时出现问题

转载 作者:行者123 更新时间:2023-12-02 08:16:02 27 4
gpt4 key购买 nike

我的项目遇到了问题,基本上它是一个存储同义词的小应用程序。我有 2 个 JPanel,其中填充了两个 JList,一个用于单词列表,另一个用于对应的同义词。当您单击一个 JList 上的某个单词时,对应的同义词会出现在另一个 JList 上然后有 2 个 JTextFields,用于添加单词-同义词对,在一个字段中插入单词,在另一个字段中插入同义词,将它们拆分,使用 synonym.split("") 创建一个数组,并将所有内容存储在 Map 中这是我添加到单词 JList 的 ListSelectionListener

    woordenList.addListSelectionListener(new ListSelectionListener() {

public void valueChanged(ListSelectionEvent evt) {

if (evt.getValueIsAdjusting()){

return;
}

getSynoniemen(evt);
}
});

这是获取同义词的方法

    private void getSynoniemen(ListSelectionEvent e){

if(e.getValueIsAdjusting()){


return;

}else{


String woord=(String)woordenList.getSelectedValue();

Object[] synArray=(Object[])beheer.getValues(woord);

synoniemenList.setListData(synArray);

}

}

如果我在未选择任何项目时将单词和同义词添加到列表中,则效果很好,如果我执行添加项目的操作,而相反,我在单词 JList 中选择了一个单词,则方法 getValues() 具有调用空字符串,引发异常。我不明白为什么,在列表中添加元素也会触发列表选择。有什么建议吗?

最佳答案

i dont understand why, adding an element on the list also fires a list selection.

您必须在代码中的某个位置更改所选索引。

下载并测试 How to Use Lists 的 ListDemo 示例。当您运行代码并“雇用”一个人时,会触发列表选择事件(我向监听器添加了 System.out.println(...) )。那么如果你注释掉:

//            list.setSelectedIndex(index);

该事件未触发。所以你的代码有问题。将您的代码与工作示例代码进行比较,看看有何不同。

如果您需要更多帮助,请发布 SSCCE这说明了问题。

关于java - 更新 JList 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6426167/

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