0

我在 Jframe 中有两个 JPanel。上面板有一个 JCombobox。根据上面板组合框中的选择,下面板由各种组件动态填充。要添加到下面板的组件的类型和数量始终是动态的。下面的一个例子 -

下JPanel:

JLabelA:JCombobox

JLabelB:JCombobox + JTextfield

JLabelC:JCombobox1 + JCombobox2 + JCombobox3

JLabelD:JList

用户可以在所需组件中选择/键入值,然后单击提交按钮。点击按钮。我需要进行自定义验证(例如,一些组件是强制性的,一些是可选的,在上面的 JLabelC 的情况下,已在所有三个组合框中选择了值)。通过所有验证后,我需要在下部面板中获取用户选择/提供的值。请注意,下部面板中的组件名称不固定,因此我无法直接获取值。一种方法是逐个遍历下部面板中的所有组件并选择值。这似乎不是很有效,因为我需要遍历所有内容,而我只需要遍历用户提供了一些输入的那些。

查询-

1) 我们如何将验证附加到组件(就像我们在 JavaScript 验证中所做的那样)?

2) 请建议获取组件值的替代方法。

4

1 回答 1

0

我已经看到(遗留)代码遍历 JComponents 并将多用途侦听器绑定/取消绑定到组合框、文本字段等。我记得它工作正常(它用于将“脏”侦听器附加到所有可编辑的小部件到那个防止用户留下未保存的更改)。

如果要进行实时验证,可以将 ChangeListeners 或 ActionListeners 附加到 JComboBoxes 或 JLists 和 DocumentListeners 到 JTextField 文档。我尝试过使用 InputVerifiers,但是当您使用组件焦点时,这通常会给用户带来问题。

于 2012-08-23T08:00:13.160 回答