我正在使用JFormattedTextField
来为Swing应用程序设置整数输入的格式。无效输入的默认行为是悄悄地(即没有错误消息)重置文本字段到它的先前值。我想在返回焦点到JFormattedTextField
之前显示JOptionPane
的错误消息。何时在Swing应用程序中显示无效输入的错误消息
我原来的解决方案是为我的文本字段实现FocusListener
。我考虑为每个子类添加相同的FocusListener
子类的实例,但自从使用NetBeans GUI Builder以来遇到了问题。 @HovercraftFullOfEels suggested我使用InputVerifier
。我已经实现以下自定义InputVerifier:
public class ValidTextFormatInputVerifier extends InputVerifier {
@Override
public boolean verify(JComponent jc) {
return ((JFormattedTextField)jc).isEditValid();
}
}
虽然寻找到这进一步,我得到的印象是JFormattedTextField
使用InputVerifier
内部。 (虽然我还没有在任何地方发现这一点。)因此,我的定制InputVerifier
似乎是多余的。
更大的问题是文本字段仍然默默复位,没有任何错误消息。我可以在这里添加一个电话到JOptionPane.showMessageDialog()
。但是,这似乎并不适合显示错误消息。 InputVerifier
不知道无效输入的确切性质,也不知道有效输入的格式,这对于提供有意义的错误消息更为重要。
想到的第一个解决方案是添加一个构造函数,其中包含要显示的错误消息的String
参数。这似乎是我把错误消息逻辑放在错误的地方,但。
是否有一个常见的Java语言用于错误处理和向用户提供消息?你如何建议我设计我的应用程序以清晰地显示错误消息?另外,如果我决定使用不同平台(例如命令行,移动设备等)为软件设计界面,我希望能够尽可能多地重复使用我现有的代码库。 (当然,因为这主要是一个用户界面问题,也许这个要求并不像我想要的那样强烈。)
呜呜呜......我没有想到一个图标旁边的领域。我想我会在下一个版本中添加这个功能。 –
某些框架还会在该字段旁边显示一条简短的错误消息。不知道它会是什么样子的Swing应用程序:) –
无论机制我决定使用通知无效的输入的用户,我的核心问题是:什么是“最好”的设计?当*显示错误信息多于* how *显示错误信息时,我主要处理*。 –