我對Java編程比較陌生,可能錯過了一些顯而易見的東西,所以請耐心等待。Java:實例化方法變量
我正在創建一個使用Swing API和JDesktopPane創建GUI的程序。在主屏幕上有一個按鈕,顯示「新窗口」。用戶單擊它並將新的JInternalFrame實例化並添加到JDesktopPane。如下,簡化方法:
protected void createNewWindow(JPanel panel) {
JInternalFrame fooFrame = new JInternalFrame();
fooFrame.setContentPane(panel);
desktop.add(fooFrame);
}
我的問題是這樣的。假設用戶點擊了十次按鈕。創建了十個JInternalFrame。所有這些都是方法變量,因此它們具有相同的名稱。
這些舊的fooFrame變量會發生什麼?垃圾收集器是否會在任何階段摧毀它們?我不會想到還有什麼東西仍然在引用它們。 有什麼辦法可以訪問任何這些舊的fooFrames?假設我想在十個fooFrame中的第四個上更改JPanel上的文本顏色。任何方式來做到這一點?
我知道這是一種非常愚蠢的做事方式,只需創建一個JInternalFrame實例變量(可能是一個數組),以在該方法中實例化並添加到JDesktopPane中,這非常簡單。我的問題更多是出於好奇而非任何事情。
謝謝哈比。爲我清理它。 – 2013-04-25 06:41:25
@TomSprud,歡迎您 – Habib 2013-04-25 06:44:44