java - JTextField 文档监听器

标签 java jtextfield jtextpane documentlistener documentfilter

尝试在 JTextField 更新时获取其值(插入字符、删除字符、更改字符),然后设置其值。

我遇到了“尝试在通知中进行变异”异常,这导致我:

但是,您永远不应该从文档监听器中修改文本组件的内容。如果这样做,程序可能会死锁。相反,您可以使用格式化文本字段或提供文档过滤器。来自here

我正在使用文档过滤器将 JTextField 的字符数限制为 12,但我不知道如何在不使用文档监听器的情况下检测 JTextField 上的更改...这是异常的根源

对我有什么建议或 SSCCE 吗?

最佳答案

很简单。将 DocumentListener 的事件逻辑包装到 SwingUtilities.invokeLater() 中,以防止 尝试在通知中发生变化问题

关于java - JTextField 文档监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28966257/

相关文章:

java - 你如何声明一个未知大小的字符串数组?

java - 为 JMX 设置 JVM 参数的运行时

java - 尝试连接到配对设备时如何修复 "java.io.IOException: read failed, socket might closed or timeout"?

java - 动态添加 JTextField - Java

java - 根据 jTextField 值采取不同的操作

java - base64 图像到 JTextPane

java - 在具体的地方使用 JTextPane 进行绘制

java - 如何使用 Java SFTP 库 JSch 将文件从一个目录传输到另一个目录?

java - 在其父容器上调用 requestFocus() 后,我需要 JTextField 可编辑

java - 如何更改 JTextPane 中特定单词的颜色?