Swing 中的输入验证

0 java swing

我已经用 6 个 jTextFields 制作了表格。用户应该只能在每个文本字段中输入 1 到 48 之间的数字。还应该检查是否有任何数字重复,应用程序应检查是否有任何字段留空。

我知道如何在 VB.net 中执行此操作,但总的来说我是 Java 新手。

在 VB.net 中,我会将所有文本字段放在数组中,然后检查所有文本字段是否都已填写,数字是否在范围内,并检查任何字段中是否有重复的数字。如果满足所有条件,我将继续将输入发送到数据库。

我对Java相当陌生,所以如果有人可以帮助我或为我指明正确的方向,那将是非常棒的。

Mad*_*mer 5

有多种方法可以实现这一点,具体取决于您希望如何实现...

你可以...

使用 a JFormattedTextField,这将在字段被操作或焦点丢失时验证用户输入,丢弃它认为是无效的输入。

这对于大多数常见格式的后期验证很有用,但确实缺乏一些灵活性......

你可以...

使用 a JSpinner,这将在操作字段或失去焦点后验证用户输入。当您希望允许用户在值之间快速移动而无需实际键入内容时,这是很好的(单击向上或向下单击更容易选择字段、向右移动、删除最后一个字符并将值增加一个...例如:P)

你可以...

使用 aInputVerifier执行您自己的验证并根据您的需要采取适当的步骤。

从技术上讲,您可以将它与其他解决方案一起使用,但它可能会影响方式JFormattedFieldJSpinner工作,所以要小心。

这使您能够定义用于在操作或失去焦点时发布验证字段的实际规则。它还允许您决定当字段无效时焦点横向应如何工作,允许将焦点保持在该字段上,直到值有效为止。

您也可以在此处显示错误消息...

你可以...

使用 a DocumentFilter,这将允许您在用户输入时对输入进行实时验证,实时丢弃无效字符。

这是最复杂的解决方案之一,但也可能是最有用的解决方案之一。

看看这里的例子