2012-02-28 31 views
-1

我有一個簡單的迴轉窗口來加載文件。從控制檯獲取輸入後不會出現迴轉窗口

這出現在類analyzedLoad,在功能analyzedloads()

JFileChooser fc = new JFileChooser(); 
JFrame frame = new JFrame(); 
int returnVal = fc.showOpenDialog(frame); 
frame.dispose(); 
if (returnVal == JFileChooser.APPROVE_OPTION) { 

我在哪裏應用功能,無需從用戶那裏得到輸入,無一不精。但是,在我得到一個來自用戶的輸入,以這樣的方式

int al= 0; 
    Scanner in = new Scanner(System.in); 
     System.out.println("for choose file, press 1; for save, press 2"); 
     al= in.nextInt(); 
     if (al== 1){ 
     analyzedLoad.analyzedloads(); // A static function which open the swing window 

窗口沒有出現,過程繼續運行,沒有做任何事情。

謝謝。

+3

代碼太少,字數太少,爲了更好地幫助您,請使用[SSCCE](http://sscce.org/) – mKorbel 2012-02-28 08:06:46

+0

編輯您的問題並刪除'al = in.nextInt();如果(al == 1){'讓窗口再次打開? – 2012-02-28 08:53:15

+0

@Qwe:是的,如果我刪除了從控制檯獲取輸入的部分,它的工作正常。 – 2012-02-28 09:00:50

回答

1

嘗試在控制檯操作後添加第二個mywindow.setVisible(true)

+0

@它沒有幫助。我將它添加到已分析的課程中,我的窗口已知,並且問題仍然存在。 – 2012-02-28 08:15:14

1

你可能想嘗試聲明analyzeLoad變量作爲final,做一些像這樣:

SwingUtilities.invokeLater(new Runnable() 
{ 
    @Override 
    public void run() 
    { 
     analyzedLoad.analyzedloads(); 
    } 
} 

或因爲該方法是靜態的:

SwingUtilities.invokeLater(new Runnable() 
    { 
     @Override 
     public void run() 
     { 
      YourClass.analyzedloads(); 
     } 
    } 

話雖這麼說,沒有更多的代碼我們只能推測。

+0

它沒有幫助。你能告訴我,我需要給更多的代碼嗎?我在兩個班裏寫了相關部分。謝謝 – 2012-02-28 08:35:34

+0

@AdamSh:無論什麼時候什麼也不做,什麼都不做,通常很好地區分GUI。你有沒有試圖初始化JFrame到一個實際可見的東西,也許'JFrame'被打開但它不可見。我建議你先創建一個可見的'JFrame',然後嘗試加載'JFileChooser' – npinti 2012-02-28 08:41:41

+0

沒有來自控制檯的輸入,一切工作正常:窗口出現,程序運行良好。所以我想我的圖形用戶界面很好。另外,我添加fc.setVisible(true);在fc的定義之後,它沒有幫助。 – 2012-02-28 08:54:29