0

在我的应用程序中,我有一个 JTextField,它只允许用户使用以某种方式格式化的输入来填充它。我有一种方法可以检查输入到该字段中的输入是否有效,如果不是,它会显示一个对话框。发生这种情况后,我希望焦点返回到文本字段,以便用户可以更正那里的错误并输入适当格式的输入。我试图通过让 JTextField 自己调用 requestFocus() 来做到这一点,但这似乎只成功了一半。JTextField 显示闪烁的光标,但在再次单击文本字段之前,我实际上无法输入任何文本。我需要调用另一种方法吗?我在文档中找不到其他任何内容。

4

1 回答 1

1

这不完全是您要求的解决方案,但您可能想查看 javax.swing.InputVerifier。此对象允许您验证字段的输入,并在格式不正确时防止将焦点从该字段移开。我不认为它会让你建立一个解释错误的对话框(尽管它可能 - 尝试一下),但它肯定会让你在“消息区域”中放置一条消息。

您所做的是在 JComponent 上设置 InputVerifier,让它测试内容的有效性;如果不正确,则 JComponent 将不会释放焦点(并且可以写入错误消息)。

于 2010-08-04T20:12:09.457 回答