gpt4 book ai didi

java - CardLayout 更新信息时删除旧面板

转载 作者:太空宇宙 更新时间:2023-11-04 07:11:31 25 4
gpt4 key购买 nike

我正在利用 CardLayout 在两个窗口之间切换。第一个窗口显示信息,第二个窗口编辑信息并保存。我更新信息的方式是每次单击“编辑”或“保存”时创建一个新的 JPanel。但是,我想删除创建的旧面板。我一直在努力

containerPanel.remove(0), 

还有

 Component c = containerPanel.getComponent(0)
cardlayout.removeLayoutComponent(c);

但是当我迭代 jpanel 并检查有多少组件时,似乎没有任何效果。这让我沮丧了很长一段时间,我真的陷入了困境。

最佳答案

当初始化您想要稍后删除的 JPanel(或任何组件)时,请使用变量存储对其的引用。然后,您将能够调用 superComponent.remove(subComponent) 来删除它。如果需要,您可以继续该模式,将包含旧组件的变量设置为新组件。

例如:

JPanel containerPanel = new JPanel();

JPanel subPanel = new JPanel(); // Store a reference to the first panel.
containerPanel.add(subPanel);
containerPanel.remove(subPanel); // Remove the panel like so.

subPanel = new JPanel(); // Set subPanel to the new panel.
containerPanel.add(subPanel);
containerPanel.remove(subPanel); // Repeat as needed.

关于java - CardLayout 更新信息时删除旧面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20579106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com