gpt4 book ai didi

java - 如何处置 JPanel - jPanel1.dispose() 或同等内容

转载 作者:行者123 更新时间:2023-12-01 08:06:16 24 4
gpt4 key购买 nike

我们如何dispose() JPanel?

我已经完成了 jPanel1.removeAll(),现在我希望释放 JPanel,以便 jPanelParent.getComponents() 无法返回它

Component[] components = this.jPanelParent.getComponents();  /// Returns 5 Components      
JPanel last = (JPanel)components[components.length];
last.removeAll();
//last.dispose() NOT AVAILABLE

Now after above code if I run .getComponents() I don't want to get "last" in above code

最佳答案

这是在错误的地方寻找答案的典型案例;你的问题预设了一种做事的方式,而你问如何进行预设的错误操作,随之而来的是困惑。 “处置”这个术语用于描述您根本不需要的操作,这并没有帮助,它与在程序员执行这些操作的环境中使内存可用于回收有关。

相信您想要做的是删除父组件对 JPanel 的引用。这符合您的愿望,即父面板中的 getComponents() 不会返回您要删除的面板。

为了让您要删除的面板执行此操作,它需要对父面板的引用,然后您可以将其从父面板中删除,就像从目标面板中删除组件一样。事实上,如果父面板是唯一引用目标的地方,并且目标的组件仅在目标中引用,则只需删除父面板对目标的引用,就不必删除目标组件。

因此将对父面板的引用传递给目标面板,并从父面板中执行目标面板的remove(),以代替假设的 dispose() 调用。

关于java - 如何处置 JPanel - jPanel1.dispose() 或同等内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21365570/

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