[英]Jtextfield border
我创建了一个formattedfield,它只接受整数作为输入,并且如果键入任何字母,则将其边框设置为红线边框。 现在,我想设置默认边框,如果用户纠正错误。 我如何设置默认边框。
谢谢你的帮助
这是我的代码:
if(!(Character.isDigit(evt.getKeyChar()))){
evt.consume();
Toolkit.getDefaultToolkit().beep();
flatNoField_addUser.setBorder(BorderFactory.createLineBorder(Color.red));
}
else{
?????
}
首先,看起来您正在使用KeyListener
尝试过滤文本字段,这是一个坏主意,并且可能导致许多问题和不一致之处。 取而代之的是,您应该使用一个DocumentFilter
,它专门用于执行此操作。
您可以在开始之前存储对原始边框的引用...
Border border = flatNoField_addUser.getBorder();
只需在需要时重新应用即可。
一个更通用的解决方案是询问UIManger ...
Border border = UIManager.getBorder("TextField.border");
这样做的问题是,它没有考虑字段具有非默认边框的用例
您可以使用以下方法获取JTextField
的原始边框:
flatNoField_addUser.setBorder(UIManager.getBorder("TextField.border"));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.