2013-10-24 19 views
0

晚上好,如何在我的主JFrame表單的開始處顯示一個JDialog?

我有一個簡單的Java應用程序,我正在處理。我卡住了,我需要一些幫助。這是我們在Java Programming類中正在開發的一個項目。

我創建了一個JFrame窗體和幾個JDialog窗體,我使用位於JFrame窗體上的按鈕成功調用。對於其中一種JDialog窗體(dlg_create_company),我希望在應用程序啓動時立即作爲模式窗口彈出。到目前爲止,我已經嘗試從JFrame表單的主要方法中調用代碼,但是我遇到了「無法在靜態上下文中調用非靜態變量」的錯誤。

這裏就是我想:

//Create a new instance of my JDialog "dlg_create_company" and assign it to "dialog" 
    //Then set it's visibility to true. 
    dlg_create_company dialog = new dlg_create_company(new javax.swing.JFrame(), true, current_company); 
    dialog.my_parent = this; //sets form frm_repair_shop as the parent via the my_parent reference. 
    dialog.setVisible(true); 

任何援助將不勝感激。 Here's a link到我整個項目的zip文件。

+0

'current_company'字段如何填充? – MadProgrammer

+0

@MadProgrammer看看我的答案。如果它不正確,我認爲它很可能會被刪除。專家批評,請;-) –

+1

@LittleChild我不認爲這是不正確的,這個問題缺乏上下文。 OP是否希望框架在對話之前或之後可見?對話信息來自哪裏?從構造函數(IMHO)中調用對話並不是最棒的想法,但這只是(是的,我已經完成了:P))。這只是我;) – MadProgrammer

回答

2

當然,您不能在非靜態上下文中訪問靜態變量。這是因爲靜態變量「一直存在」,而非靜態對象可能存在或不存在。您需要在JFrame的構造函數中顯示對話框,並使它們都可見。第一個JFrameJDialog之後。

並請發送SSCCE而不是鏈接到ZIP文件。也許明天人們會開始鏈接到他們的Github,要求我們調試它。

public MyJFrame(){ 
    // add components 
    // call pack and stuff 
    // instantiate the JDialog 
    // make JFrame visible 
    // make the JDialog visible 
} 
+0

感謝您的協助,這爲我工作。請接受我的道歉,直到今天晚上,我對SSCCE一無所知。我已經採取了建議,不會重複這個錯誤。再次感謝。 –

+0

@KismetAgbasi接受我的trollology。 –

相關問題