繁体   English   中英

Jtextfield边框

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM