gpt4 book ai didi

java - 如何知道 ComboBox ValueChangeListener 是从选择还是从用户触发

转载 作者:行者123 更新时间:2023-11-30 06:57:48 29 4
gpt4 key购买 nike

假设我像这样定义一个 ComboBox:

ComboBox myCombo = new ComboBox();
myCombo.addValueChangeListener(event -> {
//Some code
});

然后,将项目添加到组合框后,我选择一个:

myCombo.select(someItem);

有什么方法可以让我知道值更改监听器内的代码是否由于调用 myCombo.select(someItem) 或者因为用户更改了 ComboBox 的值而执行?

最佳答案

我们只需使用一个标志,例如_internalChange,然后在监听器函数中检查它。不够酷,但它可以工作:)可重用的解决方案是创建一个新组件。

boolean _internalChange = false;

void init(){
ComboBox myCombo = new ComboBox();
myCombo.addValueChangeListener(event -> {
if(_internalChange) {
// do something
} else {
// do something else
}
});
}

void selectMyCombo(Object value){
_internalChange = true;
myCombo.select(stuff)
_internalChange = false;
}

关于java - 如何知道 ComboBox ValueChangeListener 是从选择还是从用户触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41480746/

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