mmr*_*txs -1 java swing border keylistener jtextfield
我创建了一个仅使用整数作为输入的格式化字段,如果键入任何字母,我将其边框设置为红色边框.现在我想设置默认边框,如果用户纠正错误.我该如何设置默认边框.
谢谢你的帮助
这是我的代码:
if(!(Character.isDigit(evt.getKeyChar()))){
evt.consume();
Toolkit.getDefaultToolkit().beep();
flatNoField_addUser.setBorder(BorderFactory.createLineBorder(Color.red));
}
else{
?????
}
Run Code Online (Sandbox Code Playgroud)
首先,看起来你正在使用a KeyListener来尝试和过滤文本字段,这是一个坏主意,可能导致许多问题和不一致.相反,你应该使用一个DocumentFilter,这是为了做到这一点.
您可以在开始之前存储对原始边框的引用...
Border border = flatNoField_addUser.getBorder();
Run Code Online (Sandbox Code Playgroud)
只需在需要时重新应用它.
更通用的解决方案是询问UIManger ......
Border border = UIManager.getBorder("TextField.border");
Run Code Online (Sandbox Code Playgroud)
这样做的问题是它没有考虑字段具有非默认边界的用例
| 归档时间: |
|
| 查看次数: |
1515 次 |
| 最近记录: |