You*_*mro 0 java user-interface swing
我们如何处置()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
现在在上面的代码之后,如果我运行.getComponents(),我不想在上面的代码中获得“最后一个”
这是在错误的地方寻找答案的经典案例。您的问题以一种做事的方式为前提,而您又问该怎么做,即错误的操作和随之而来的混乱。“ dispose”是一个您根本不需要的操作所使用的术语,这无济于事,这与在程序员执行这些操作的环境中提供可回收的内存有关。
我相信您要做的是删除父组件对JPanel的引用。这符合您的期望,即父面板中的getComponents()不返回您要摆脱的面板。
为了使要删除的面板可以执行此操作,它需要引用父面板,然后可以将其从父面板中删除,就像从目标面板中删除组件一样。实际上,如果父面板是唯一引用目标的位置,并且仅在目标中引用了目标的组件,则只需删除对目标的父面板引用,就不必删除目标组件。
因此,将对父面板的引用传递到目标面板,然后从假设的dispose()调用中将目标面板从父面板中移除()。
| 归档时间: | 
 | 
| 查看次数: | 12276 次 | 
| 最近记录: |