我创建了一个仅使用整数作为输入的格式化字段,如果输入任何字母,我将其边框设置为红色边框。 现在我想设置默认边框,如果用户纠正错误。 我该如何设置默认边框。
感谢您的帮助
这是我的代码:
if(!(Character.isDigit(evt.getKeyChar()))){
evt.consume();
Toolkit.getDefaultToolkit().beep();
flatNoField_addUser.setBorder(BorderFactory.createLineBorder(Color.red));
}
else{
?????
}
答案 0 :(得分:5)
首先,看起来您使用KeyListener
来尝试过滤文本字段,这是一个坏主意,可能导致许多问题和不一致。相反,你应该使用DocumentFilter
,这是为了做到这一点。
您可以在开始之前存储对原始边框的引用...
Border border = flatNoField_addUser.getBorder();
只需在需要时重新申请。
更通用的解决方案是询问UIManger ......
Border border = UIManager.getBorder("TextField.border");
问题在于它没有考虑字段具有非默认边框的用例
答案 1 :(得分:0)
您可以使用以下方式将原始边框设为JTextField
:
flatNoField_addUser.setBorder(UIManager.getBorder("TextField.border"));