我正在使用GridBagLayout
在Java中创建GUI。有没有办法让我创建一个组件组,以便我可以将引用传递给组并访问所有组件?
我考虑过创建一个面板并按照这种方式对组件进行分组,但我想知道是否有另一种方法可以利用GridBagLayout
的复杂性。
非常感谢!
答案 0 :(得分:3)
好吧,如果你不能用JLabel,JTextField和JButton来创建一个用于包含你的组的bean,你可以在你的主ui面板中使用Map来在你添加它们时注册这些元素。 一些结构如
Map<K, List<Component>>
可能有用,其中K是组的标识符。这样就可以将组件与它们放置在ui中的方式分离开来。
答案 1 :(得分:2)
您应该将面板视为只写。你在那里打乱你的组件,所有设置和正确的布局约束。你(几乎)永远不会去寻找组件。
相反,请在设置时将组件添加到Set
(或类似)。然后你可以在集合上做一个非常干净的posh for
循环来执行相应的任务。更高级的技术是让个别观察者(听众)从模型中刷新组件。
答案 2 :(得分:0)
通常的方法是按照建议使用JPanel。请记住,JPanel本身可能有自己独立的布局管理器。因此,您可以在JPanel上使用GridBagLayout来定位面板上的元素。