【发布时间】:2019-08-06 21:11:14
【问题描述】:
我正在尝试创建一个设置 JLabels 的程序,使用 GridBagLayout。
我想创建一个按钮,按下该按钮会从某个 gridY 位置删除所有内容。我该怎么做呢。谢谢。
【问题讨论】:
我正在尝试创建一个设置 JLabels 的程序,使用 GridBagLayout。
我想创建一个按钮,按下该按钮会从某个 gridY 位置删除所有内容。我该怎么做呢。谢谢。
【问题讨论】:
简单。当您将这些组件添加到它们的父容器时,请将它们保存在一个结构中(可能是一个列表)。比如:
JPanel container = new JPanel(new GridBagLayout());
//...
List<Component> components = new ArrayList<>();
// Add components to container and to list...
for (Component c : components) {
container.remove(c);
}
container.revalidate();
container.repaint();
【讨论】:
Container 类有一个方法getLayout()。这将允许您为您的面板获取 GridBagLayout 实例。Container 类也有一个方法getComponents()
因此,一旦您获得了数组中的所有组件,您就可以遍历该数组。对于每个组件,您会:
GridBagLayout 的getConstraints() 方法。 GridBagConstraints对象的gridy值,看看组件在哪一行。循环结束后,您在面板上调用revalidate()。
【讨论】: