问题标签 [inputverifier]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
2473 浏览

java - 在验证 JTextFields 是否具有大于 0 的数值后,在 java 中启用 JButtons?

有两个按钮只有在所有字段中都存在有效数据时才启用,即数值和没有负数。你是怎么做到的?

0 投票
3 回答
98 浏览

java - 组件迭代和验证问题

我有一种方法可以检查JTextField面板中的所有 sJPanel以查看它们是否为空,并遍历容器中的所有组件。在容器中,我有标签、文本字段和组合框。所以我可以验证前几个JTextFields,但是当我遇到第一个JComboBox<?>验证停止时,我似乎不明白为什么。以下是代码:-

任何帮助将不胜感激。

另请注意,这是在单击按钮(例如保存按钮)时调用的。

0 投票
1 回答
547 浏览

java - 如何退出 Java Swing 应用程序,避免从 setInputVerifier 生成消息

我有一个文本字段,在 InputVerifier 的帮助下,我在输入数据中施加了一些约束。约束是如果文本字段为空,则会弹出错误消息。当应用程序启动时,光标停留在文本字段上 (text_field.requestFocusInWindow())。

现在,如果在任何时候单击退出按钮,应用程序应立即终止。但如果文本字段仍然为空,它会显示错误消息并且不会退出。如何解决这个问题呢?

退出代码:

0 投票
1 回答
1475 浏览

java - InputVerifier 错误地产生焦点并需要将其与其他 ActionListener 方法一起使用的建议

我有一个 GUI,用户可以在其中将测量值输入多个字段并根据测量值计算结果。我正在尝试为这些字段实现以下内容 -

  1. 输入的值必须在适当的范围内
  2. 我有一个选项对话框,其中包括设置单位。任何包含值的字段都必须更新为当前单位
  3. 当字段中的值发生变化时,我需要查看是否输入了所有测量值,如果是,则执行(或重做)计算。

我已经用表格做了类似的事情(模型保留了“标准”单位中的值,并且自定义渲染器和单元格编辑器处理了向用户显示当前单位中的值并将值存储在模型中的“标准”单位中)。

我不相信 JTextField 有要覆盖的渲染器,文档编辑器看起来有点吓人,而且用户不喜欢 JFormattedTextField,所以我想我会创建一个自定义 JTextField 来存储“标准”值并使用 inputVerifier我以前用于表的。

示例代码如下(它几乎可以工作)。我使用 JComboBox 作为选项对话框的替代品,并且只实现了一个文本字段。

我可以使用一些专家的建议-

  1. 我可能误解了 setInputVerifier。我认为如果我尝试从文本字段更改焦点并在我说不产生焦点时将焦点保持在文本字段中,则应该调用它。但是,如果我在文本字段中输入“aa”(不按回车键),我可以更改组合框中的值。我的调试 println 说-

Volume value changed (f) // 我的焦点监听器触发了更新模型 // 从我的焦点监听器验证:'aa' //来自我的输入验证器 无效的数字 //来自我的输入验证器

文本框出现红色轮廓,我听到哔声,但组合框处于活动状态。文本字段以空值结束,因为当我更改其值时会调用组合框操作侦听器。为什么允许我更改组合框的值?我该如何阻止它?

  1. 我添加一个 InputVerifier、两个 ActionListener 和一个 FocusListener 似乎是错误的。我确实喜欢任务的逻辑分离。我应该做什么?我是否应该扩展 DoubleVerifier 并覆盖 actionPerformed 以仅包含 DoubleVerifier 中当前的内容以及 VolumeValueListener 中的内容?

我希望验证文本字段,并在用户输入 (CR) 并留在字段中或离开字段时更新基础数据的视图。这就是为什么行动和焦点听众。

欢迎任何更正或见解。

UnitsTextField.java

UnitsLabel.java

转换.java

DoubleVerifier.java

VolumeTextFieldTest.java

0 投票
0 回答
89 浏览

java - 如何验证 JComponent

我想验证上述字段(它的用户名和密码) 我只想在用户名和 az 中使用 alohabet(az),在密码中使用 0-9 怎么做?我是摇摆新手

0 投票
0 回答
160 浏览

java - 范围的通用 InputVerifier

我正在尝试创建一个通用 InputVerifier 来检查 JComponent 中的数据是否在指定范围内。为此,我使我的泛型类型扩展了 Comparable<> 以确保它可以进行比较。

我正在关注的是以下两件事:

  1. JComponent 没有 getText() 方法,也没有一个子类可以转换为 JTextField 和 JSpinner 等常见组件使用的子类,它们都有不同的获取值的方法。
  2. 我认为我不能指定我的泛型类型 DataType 必须具有特定的函数签名。我试图看看我是否可以强制它具有一个接受单个字符串的构造函数(如 Integer、Double、Float),或者强制 DataType 必须扩展 Integer、Double 或 Float,但我不确定如果 Java 7 泛型可以做到这一点。如果我能做类似的事情会很棒:DataType myData = new DataType(text);

这是我现在的课程。我把它抽象化了,所以子类必须知道返回文本所涉及的 JComponent 的类型,然后如何构建可比较的类型以进行比较。考虑到可能起作用的不同类型的 JComponents 和 Comparable 类型,这可能会导致许多排列。有没有办法消除我上面提到的一个或两个问题?

0 投票
2 回答
385 浏览

java - 将格式应用于 JFormattedTextField 后,有没有办法强制验证?

我要做的第一件事是创建一个NumberFormat适合我需要的:

然后我将它应用到 JFormattedTextField:

然后我设置这个字段的InputVerifier,像这样:

IdVerifier只是看看输入的文本是否符合正则表达式:

但是,当我这样做时,我会在 中输入一个值JFormattedTextField,比如说“1”。这被重新格式化为“000001” NumberFormatter。但是,在此示例中,文本字段的背景仍设置为红色。

什么是正确的方法来确保格式化的内容JFormattedTextField是被 消耗的InputVerifier?我预计默认行为是失去焦点,应用格式化程序,然后验证输入。然而,情况显然并非如此。

0 投票
2 回答
776 浏览

java - 以编程方式设置文本时 InputVerifiers 未激活

我有一个带有 JTextFields 的摇摆应用程序,我将 InputVerifiers 附加到。我通过 setText 方法将有效的默认值应用于字段,例如

但似乎public boolean verify(JComponent component)除非将焦点应用于字段,否则不会调用它。我试图以编程方式请求焦点,但这似乎仍然没有触发 InputVerifier,例如

如何以编程方式设置文本字段文本并让我的 InputVerifier 触发并运行其 verify() 方法?

我可以在构建 InputVerifier 之后手动触发它,调用 verify() 并传入组件,但这似乎真的没有必要,因为 TextField 已经连接到 InputVerifier。

0 投票
1 回答
4063 浏览

java - JTextField 输入验证器

我将输入验证器设置为我的文本字段:

55555在文本字段中输入,它显示true,为什么?

0 投票
1 回答
6845 浏览

java - 为 JTextFields 设置不同的 inputVerifier

在这里,我将 InputVerifier 设置为我的文本字段(tf1):

现在我想将输入验证器设置为我的第二个文本字段(tf2),但我的tf2验证器条件不同于tf1

例如我verify()tf2应该是这样的:

等等更多的文本字段。

如何使用一个扩展类验证两个或多个具有不同条件的文本字段?