【发布时间】:2012-08-18 16:24:58
【问题描述】:
我在一个 Jframe 中有两个 JPanel。上面板有一个 JCombobox。根据上面板组合框中的选择,下面板由各种组件动态填充。要添加到下面板的组件的类型和数量始终是动态的。下面的例子-
下 JPanel:
JLabelA:JCombobox
JLabelB:JCombobox + JTextfield
JLabelC:JCombobox1 + JCombobox2 + JCombobox3
JLabelD: JList
用户可以在所需组件中选择/键入值,然后单击提交按钮。点击按钮。我需要进行自定义验证(例如,一些组件是强制性的,一些是可选的,在上面的 JLabelC 的情况下,已在所有三个组合框中选择了值)。通过所有验证后,我需要在下部面板中获取用户选择/提供的值。请注意,下部面板中的组件名称不固定,因此我无法直接获取值。一种方法是逐个遍历下部面板中的所有组件并选择值。这似乎不是很有效,因为我需要遍历所有内容,而我只需要遍历用户提供了一些输入的那些。
查询-
1) 我们如何将验证附加到组件(就像我们在 JavaScript 验证中所做的那样)?
2) 请提出获取组件值的替代方法。
【问题讨论】:
-
在创建/布局组件时能否保留对组合框等的引用?
-
是的,我可以。但是我看到的问题是——我将如何区分两个 JTextFields 或 JcomboBoxes?上面示例中给出的四种组件组合是四种“类型”,每种“类型”都可以在面板中出现多次。创建每个“类型”的代码是相同的,并且会被多次调用。我说清楚了吗?
标签: validation dynamic components jpanel fetch