2012-04-17 57 views
1

這是在BlueJ中創建的作業,並以包含BlueJ軟件包的zip文件形式提交。如何從gui啓動控制檯程序?

在包中有幾個獨立的控制檯程序。我正在嘗試創建另一個「控制面板」程序 - 一個帶單選按鈕的gui來啓動每個程序。

以下是我已經嘗試了監聽器類的2:提前

private class RadioButtonListener implements ActionListener 
{ 
    public void actionPerformed(ActionEvent e) 
    { 
     if(e.getSource() == arraySearchButton) 
     { 
      new ArraySearch(); 
     }//end if 
      else if(e.getSource() == workerDemoButton) 
      { 
       new WorkerDemo(); 
      }//end else if 
    }//end actionPerformed 
}//end class RadioButtonListener 

private class RunButtonListener implements ActionListener 
{ 
    public void actionPerformed(ActionEvent e) 
    { 
     if(arraySearchButton.isSelected()) 
     { 
      new ArraySearch(); 
     }//end if 
      else if(workerDemoButton.isSelected()) 
      { 
       new WorkerDemo(); 
      }//end else if 
    }//end actionPerformed 
}//end class RunButtonListener 

謝謝!

+1

那麼問題是什麼?例如。發生了什麼(或沒有發生)?你怎麼知道它應該被調用? WorkerDemo中有什麼? – 2012-04-17 21:05:38

+0

這是功課嗎? – Aaron 2012-04-17 21:08:07

+0

@pst 問題是控制檯窗口從不啓動。從技術上講,作業是完整的,這是額外的。 – 2012-04-17 21:14:01

回答

1

假設您嘗試啓動.EXE控制檯應用程序,以下是一些可以幫助您的代碼。請參閱下面的解釋。

import java.io.*; 


public class Main { 

     public static void main(String args[]) { 

      try { 
       Runtime rt = Runtime.getRuntime(); 
       //Process pr = rt.exec("cmd /c dir"); 
       Process pr = rt.exec("c:\\helloworld.exe"); 

       BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream())); 

       String line=null; 

       while((line=input.readLine()) != null) { 
        System.out.println(line); 
       } 

       int exitVal = pr.waitFor(); 
       System.out.println("Exited with error code "+exitVal); 

      } catch(Exception e) { 
       System.out.println(e.toString()); 
       e.printStackTrace(); 
      } 
     } 
} 

首先,你需要對當前正在運行的Java應用程序的處理和做,你創建一個Runtime對象,並使用調用Runtime.getRuntime()。然後您可以聲明一個新進程並使用exec調用來執行正確的應用程序。

bufferReader將幫助打印生成的進程的輸出並將其打印在java控制檯中。

最後,pr.waitFor()會強制當前線程在繼續前等待進程pr終止。如果有的話exitVal包含錯誤代碼(0表示沒有錯誤)。

希望這會有所幫助。

+0

感謝您的廣泛代碼,非常翔實。然而,控制檯應用程序實際上是與控制面板相同的BlueJ軟件包中的其他類。 – 2012-04-17 21:17:18

+1

然後,爲什麼不能簡單地創建該類的實例並調用正確的函數? – Chris911 2012-04-17 21:21:41

+0

我認爲這就是上面的代碼所做的;我錯過了什麼? – 2012-04-17 22:18:03

相關問題