假设有两个抽象文档对应JTextFields(两个JTextFields是不同的变量)。
假设用户在 JtextField1(文档 A)中输入数值,它应该在运行时相应地更新另一个 JTextField2(文档 B)。如果用户在同一程序运行时在 JTextField2(Document B) 中输入数值也是如此,它应该更新 JTextField1(Document A)。
我尝试通过使用 Document Listener 来解决这个问题,但是,它仅适用于在运行时更新一个文档(A 更新 B 或反之亦然),而不是两者(或准确地说是彼此),因为它提供了死锁。我应该使用 DocumentFilter 来解决这个问题吗?不过,我不知道如何将它应用于这种情况。我尝试通过使用 FocusListeners 并在字段不在焦点时禁用 DocumentListener 来避免死锁/写锁定问题,但这是一种非常幼稚的方法,因为它完全不处理线程(如果这是问题的话)。选择另一个字段时创建一个单独的线程就足够了吗?不过,我对多线程没有真正的了解。我将不胜感激有关此问题的某种建议。
代码: http: //pastebin.com/qqYPXcAf
我正在尝试重新创建 photoshop 的类似 GUI 功能,以像素为单位更新宽度/高度大小,以便在用户输入的运行时保持 AR(图片: http: //puu.sh/9L07v/c745e85867.png)