2014-05-11 69 views
0

我想實現一個代碼,它展示了打開的JFrame。通過這裏的計算器多個問題搜索,但我仍然得到一個錯誤消息的代碼frame.dispose()方法錯誤

Returns_Show_Data.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); 

錯誤: 非靜態方法setDefaultCloseoperation(INT)不能從靜態上下文中引用... 我也試過:

Returns_Show_Data.dispose(); 

而且它也是這樣說的。

在此先感謝。

+0

[在Java中靜態方法中調用非靜態方法]的可能重複(http://stackoverflow.com/questions/2042813/calling-non-static-method-in-static-method-in-java) – Reimeus

+1

什麼是[tag:c#]標籤?我已將其刪除,因爲將來使用此網站的任何人都會誤導他人。 –

回答

1

你讓這個方法調用:

Returns_Show_Data.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); 

的一類,Returns_Show_Data,這是不允許的,因爲該錯誤消息告訴您。相反,您必須在您的應用程序正在顯示的有效的Returns_Show_Data實例上調用它。

話雖如此,它聞起來好像你計劃打開和關閉各種JFrames,如果是這樣,請不要這樣做,這可能會非常惱人的用戶有窗戶扔在他們身上。相反,請考慮通過CardLayout在一個主GUI JFrame中交換視圖

如果您確實需要顯示臨時窗口,請考慮使用JDialog而不是JFrame,然後以將其綁定到JFrame的方式創建對話框。

+0

是的。它是一個臨時JFrame ... –

+0

感謝您的建議,但我真的想要以這種方式實現,因爲我必須將處理代碼放在多個jframe中,所以我需要修復此錯誤。 –

+0

@Marve:''我有......多個jframes「'是一個糟糕的設計。如果這是我的項目,我會重新開始。嚴重。 –