我对 JFormattedTextField 有疑问,即将它保持在非覆盖模式。我发现了如何将其设置为非覆盖,即使用 setOverwriteMode(false)。
然而,虽然这个功能可以让我在没有覆盖的情况下输入字段,但是当失去焦点并且我重新输入字段时,overWriteMode 又会打开!
有没有办法保持 overWriteMode 为假?我更喜欢每次我失去焦点时都不会将其设置为 false 的解决方案,但如果这是唯一可能的解决方案,那就这样吧。
这就是我现在得到的:
DefaultFormatter format = new DefaultFormatter();
format.setOverwriteMode(false);
inputField = new JFormattedTextField();
inputField.setValue("don't overwrite this!");
inputField.setColumns(20);
format.install(inputField);// This does the trick only the first time I enter the field!
我希望有一个人可以帮助我!
Robin 提出的解决方案:
DefaultFormatter format = new DefaultFormatter();
format.setOverwriteMode(false);
inputField = new JFormattedTextField(format); // put the formatter in the constructor
inputField.setValue("don't overtype this!");
inputField.setColumns(20);
谢谢您的帮助!问候