Tro*_*ols 1 java validation user-interface swing
这是一个非常具体的编码问题:
我最近被要求在工作中维护一些旧的Java Swing GUI代码并遇到这个问题:
我将自己的InputVerifier子类名为MyFilenameVerifier附加到JTextField(但它也可能是用于这些目的的任何JComponent).我重写了verify()方法,使其调用super.verify(input)(其中input是要验证的JComponent参数()).如果super.verify(input)回来假,我做:
input.setBorder(BorderFactory.createLineBorder(Color.RED));
Run Code Online (Sandbox Code Playgroud)
这是在我之前很久就开始使用的这个应用程序的UI中使用的约定,所以我没有很多选择,只要使用其他方式来吸引用户注意(希望我这样做).这就是它的工作方式.
问题是,一旦用户返回并在文本字段中输入有效内容,我需要一种方法将其设置回默认边框(而不是仅仅将其设置为Color.GRAY或其他任何颜色,这与其原始颜色不同边界).我需要一种方式来说,"删除额外的装饰并恢复正常"或者只是将边框设置为默认值,换句话说.
或者没有缓存任何东西,你可以告诉JComponent通过component.updateUI将其UI更新回到外观的默认值.这应该使组件重置其颜色,边框,字体等以匹配原始设置.