我在GridBagLayout中插入了几个JPanel,带有gridBagConstraints对象, 在一个特定的动作后,我想改变一些JPanels的颜色。 我的问题是如何访问GridBagLayout中的特定JPanel并更改其颜色。 (使用网格中Jpanels的给定坐标)
答案 0 :(得分:1)
您应该将这些JPanel分配给某种变量,以便能够获得对它们的引用。这可以是单个变量,也可以是List或Map等集合。如果您还没有使用过地图,那么我建议您小心使用这些非常有用的结构,这些结构可以让您根据字符串,他们的"坐标"来访问对象。或其他一些独特的标识符。
顺便说一句,我的建议显然与布局管理器无关,我也不认为尝试使用布局管理器会产生强大的长期解决方案。
如果必须在GridBagLayout-using容器中获取单个组件的GridBagConstraints,则GridBagLayout API可以使用GridBagLayout方法public GridBagConstraints getConstraints(Component comp)
。如果所有组件都需要这个,那么你可以在容器上调用getComponents()
,遍历for循环中的所有组件,在它们上面调用上面的方法。
此外,如果您需要更具体的帮助,请考虑通过创建和发布minimal code example program来审核您的问题,以供我们审核,测试,并可能帮助您解决问题。