gpt4 book ai didi

java - 编辑时锁定 JTextField 免受外部更新

转载 作者:行者123 更新时间:2023-12-01 05:47:57 25 4
gpt4 key购买 nike

我的 GUI 每 500 毫秒显示一次来自后端的数据。在编辑字段时,我遇到了竞争条件。当调用 Action 监听器时,来自后端的值将覆盖用户手动输入到文本字段中的任何内容。

有没有办法锁定字段或使用信号量或从其他地方检索新值?

谢谢。

        JTextField tf = new JTextField();
tf.setName("reg_r"+i);
tf.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JTextField tf = (JTextField)e.getSource();

//prints OLD value!
System.err.println(tf.getText());

}
});

最佳答案

我想出的解决方案是检测文本字段何时被编辑并且不更新它。

JTextField tf = (JTextField) FrameUtils
.getComponentById(
instance.getContentPane(), "reg_r"
+ i);
Component c = (Component) getFocusOwner();
if (c == null || !tf.getName().equals(c.getName())) {
// JTextField is not focused/being edited, proceed with update
tf.setText(...);
}

关于java - 编辑时锁定 JTextField 免受外部更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5477684/

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