在我正在处理的 Java 项目中,我使用 GridBagLayout 来布置我的 UI。UI 中的每个组件都与一个 x 和 y 坐标相关联,GridBagConstraints 使用该坐标将组件放置在 UI 中。
我有一个 addAt(component, x, y, constraints) 方法,它将给定组件放置在 UI 中的坐标 (x,y) 处。
而不是执行以下操作来设置我的 UI:
addAt(component1, 3, 1, constraints);
addAt(component2, 3, 2, constraints);
addAt(component3, 3, 3, constraints);
addAt(component4, 3, 4, constraints);
我想将每个组件的坐标存储在对象本身中,这会给我:
addAt(component1, constraints);
addAt(component2, constraints);
addAt(component3, constraints);
addAt(component4, constraints);
我目前这样做的方法是覆盖我正在使用的所有 JComponents 的基类,并使用方法 getXCoord() 和 getYCoord() 实现接口。
我已经看到 JComponents 有 getX() 和 getY() 方法,但是这些方法的目的与我想要的不同。
所以基本上,我的问题是,鉴于上述信息,是否有比创建每个单独 JComponent 的覆盖版本更清洁的方法来实现此功能?如果我在这里遗漏了一些明显的东西,我深表歉意。