gpt4 book ai didi

java - 组合框 ItemListener 中触发事件的顺序是什么

转载 作者:行者123 更新时间:2023-11-30 03:50:10 26 4
gpt4 key购买 nike

我正在将 ItemListener 添加到组合框,并且我想知道事件 ItemEvent.DESELECTED 是否始终在事件 ItemEvent.SELECTED 之前触发,或者顺序是否未指定。

在一个简单的示例中,似乎 DESELECTED 之前已被触发,但我可以相信这个示例吗?

    combo = new JComboBox<String>(new String[}{"A","B","C"});
combo.addItemListener(new ItemListener()
{

@Override
public void itemStateChanged(final ItemEvent e)
{
if(e.getStateChange() == ItemEvent.SELECTED)
{
logger.debug("{} selected", e.getItem());
// Load the file selected in the JTextArea using JTextArea.setDocument()
}
else if(e.getStateChange() == ItemEvent.DESELECTED)
{
logger.debug("{} deselected", e.getItem());
// If doc in the textarea has been modified, save it now
}
}
});

为了向问题添加上下文,我使用组合来选择要在 JTextArea 中加载的文件。用户可以通过文本区域编辑文件。如果她选择组合中的另一个文件,我想通知她前一个文件已被编辑,并要求她确认保存编辑。我可以在组合的 ItemListener 中安全地实现此功能吗?安全地说,我的意思是,如果我在此时调用 textArea.getText() (项目已取消选择),我是否可以确定 textarea 尚未填充要加载的新文件的内容?

最佳答案

general ,顺序指定。特别是,组合选择和文本显示与底层文档状态无关。如果用户选择继续编辑,只需将修改后的文档恢复到文本区域即可。

关于java - 组合框 ItemListener 中触发事件的顺序是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24651310/

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