我正在使用GridBagLayout用Java语言创建一个图形用户界面。有没有办法让我创建一个组件组,这样我就可以将引用传递给该组并访问所有组件?
我曾考虑过创建一个面板并以这种方式对组件进行分组,但我想知道是否有其他方法可以利用GridBagLayout的复杂性。
非常感谢!
发布于 2010-02-11 23:18:21
好吧,如果你不能用JLabel、JTextField和JButton创建一个bean来包含你的组,你可以在添加元素时使用主ui面板中的映射来注册它们。一些结构,比如
Map<K, List<Component>>可能行得通,其中K是组的标识符。这样,您就可以将组件与它们在ui中的放置方式分离开来。
发布于 2010-02-11 22:56:32
你应该认为面板是只写的。你把你的组件放在那里,所有的都设置好了,并且有正确的布局约束。您(几乎)从来不会去搜索组件。
而是将组件添加到您设置时的Set (或类似)。然后,您可以在集合上执行一个非常干净的posh for循环,以执行适当的任务。一种更高级的技术是让单个观察者(侦听器)刷新模型中的组件。
发布于 2010-02-11 22:46:11
通常的方法是按照您的建议使用JPanel。请记住,JPanel本身可能有自己的独立布局管理器。因此,您可以在JPanel上使用GridBagLayout来定位面板上的元素。
https://stackoverflow.com/questions/2245145
复制相似问题