我正在使用JFormattedTextField
for格式化Swing应用程序的整数输入。无效输入的默认行为是悄悄地(即没有错误消息)将文本字段重置为其先前值。JOptionPane
在将焦点返回到之前,我想显示一条错误消息JFormattedTextField
。
我最初的解决方案是FocusListener
为我的文本字段实现。我考虑过将相同FocusListener
子类的实例添加到每个实例,但是自从我使用NetBeansGUIBuilder以来就遇到了问题。@HovercraftFullOfEels建议我使用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习惯用法?您如何建议我将应用程序设计为干净显示错误消息?另外,如果我决定使用其他平台(例如,命令行,移动设备等)来设计软件的接口,我希望能够重用我现有的代码库。(当然,由于这主要是一个UI问题,也许该要求并不像我在这里所希望的那样适用。)
我的第一意见是,每当失去文本字段焦点时,向用户显示JOptionPane都会对用户造成很大的困扰。当用户单击表单的“确定”按钮时,我会显示一条错误消息。该错误消息可以包含所有错误消息的列表,也可以仅包含第一个错误消息,并以错误为焦点。
另一种选择是使用常规JTextField
并编写自己的自定义验证器。当焦点更改时,您的IntegerValidator(或其他实现)将验证输入字符串,并且UI可能在字段旁边显示错误或警告图标,这与某些Web应用程序相同。
问题内容: 我想在Java swing应用程序中显示一个网页。与使用HTML时类似,但在Java Swing中。这可能吗?如果可以,怎么办? 问题答案: 使用:
错误如下: 02-11 13:24:31.561 526 2-5262/?E/AndroidRuntime:致命异常:main process:com.example.vicky.project,pid:5262 java.lang.runtimeException:无法启动活动ComponentInfo{com.example.vicky.project/com.example.vicky.pr
gradle Build:
颤振医生-V: 我的操作系统是Ubuntu18.04,我想使用模拟器进行调试,请帮助我。
我正在尝试使用rails创建新项目,但它显示错误。我正在处理mac及其显示错误 $rails新特快专递
LOGCAT错误阻止我打开MAP活动并停止工作。