gpt4 book ai didi

java - Swing:在不触发回调的情况下以编程方式修改 UI

转载 作者:行者123 更新时间:2023-11-29 06:17:58 26 4
gpt4 key购买 nike

如果您理所当然地认为您需要以编程方式修改 UI 的元素,例如 JComboBox 的选定项而不触发任何修改/通知事件,那么如何相对干净地进行修改?

当然,我可以分离所有的监听器,然后在我修改了我想要修改的内容后重新附加它们,但通常情况下,应该如何做到这一点? (再一次,考虑到应该修改某些元素并且认为这些修改不应触发任何回调是理所当然的)。

P.S:我确实是通过编写实际分离所有监听器、执行修改、然后重新附加所有监听器的方法来做到这一点的,它确实有效,但对我来说似乎有点糟糕。

最佳答案

通常,问题不在于所有听众,而在于一个——我们自己的听众。忽略此类事件的典型模式如下:

private boolean ignoreEvents;

public void initialize(...) {
ignoreEvents = true;
try {
// set the combobox value
}
finally {
ignoreEvents = false;
}
}

private void processMyXyEvent(...) {
if (ignoreEvents) {
return;
}

// listener code
}

关于java - Swing:在不触发回调的情况下以编程方式修改 UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4317918/

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