建議:
充分利用JFrame
實例場MainWindow
類,併爲它提供一個訪問方法。
public final class MainWindow{
private final JFrame main_f;
public MainWindow(){
main_f = new JFrame("xx");
main_f.getContentPane().setLayout(new BorderLayout());
main_f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
.
.
.
}
public final JFrame getMainFrame(){
return main_f;
}
.
.
.
}
然後在Disposing
類,你應該有一個MainWindow
例如,在這裏您可以簡單地做以下處置其JFrame
實例:
mainWindowInstance.getMainFrame().dispose();
建議:
編輯:
這是爲了解決你所看到的錯誤:
- 變量main_f可能尚未初始化
- 找不到符號「mainWindowInstance 「
關於第一個錯誤,這是因爲在我提供的示例中,我使用了final
修飾符。該字段必須在創建對象時進行初始化。因此,你必須有多個構造函數。要解決此問題,請刪除final
修改器,或初始化MainWindow
的每個構造函數中的main_f
字段。
關於第二個錯誤,mainWindowInstance
的東西,我離開你創建。這是一個「例如」 -
public class Disposing{
private MainWindow mainWindowInstance;
public Disposing(){
mainWindowInstance = new MainWindow();
.
.
.
}
public void diposeMainFrame(){
mainWindowInstance.getMainFrame().dispose();
}
}
來源
2011-08-19 13:43:47
mre
@Makaroni,此外,如果您做了'main_f'一個'static'領域,這樣的工作你想要的方式處置它,但這不是真正的OOP。 – mre
IDE現在給我2個錯誤:1st。 「變量main_f可能沒有被初始化」,第二:找不到符號「mainWindowInstance」。我應該輸入什麼? – Makaroni
@Makaroni,什麼錯誤?你能否包含你的更新代碼?請提供此信息作爲對您問題的修改。 – mre