我正在使用 Java 中创建一个 GUI GridBagLayout
。我有什么方法可以创建一个组件组,以便我可以将引用传递给该组并可以访问所有这些?
我考虑过创建一个面板并以这种方式对组件进行分组,但我想知道是否还有另一种方法可以利用GridBagLayout
.
非常感谢!
我正在使用 Java 中创建一个 GUI GridBagLayout
。我有什么方法可以创建一个组件组,以便我可以将引用传递给该组并可以访问所有这些?
我考虑过创建一个面板并以这种方式对组件进行分组,但我想知道是否还有另一种方法可以利用GridBagLayout
.
非常感谢!
好吧,如果您无法使用 JLabel、JTextField 和 JButton 创建一个包含您的组的 bean,您可以在添加元素时始终在主 ui 面板中使用 Map 来注册元素。一些结构如
Map<K, List<Component>>
可能有效,其中 K 是组的标识符。这样,您就可以将组件与它们在 ui 中的放置方式分离。
您应该将面板视为只写。您在那里安装组件,所有组件都已设置并具有正确的布局约束。您(几乎)从不去搜索组件。
相反,将组件添加到Set
您设置的(或类似的)中。然后,您可以对集合执行一个非常干净的豪华for
循环以执行适当的任务。更高级的技术是让单独的观察者(监听者)刷新模型中的组件。
通常的方法是按照您的建议使用 JPanel。请记住,JPanel 本身可能有自己独立的布局管理器。因此,您可以在 JPanel 上使用 GridBagLayout 来定位面板上的元素。