2009-10-02 58 views
1

我已經寫了一個Java程序,我正在通過命令行運行它,如「java我的程序」如何啓動一個java程序?

現在我想有一個GUI,有一個開始,暫停和停止按鈕。如何通過點擊開始按鈕啓動該Java程序。如何暫停以及如何停止它?

回答

0

首先,你需要編寫你的「形式」 ......

這將是一個有用的資源,以一個初學者。

Basics

+0

我認爲這解決了一個不同的問題... – fortran 2009-10-02 08:44:19

4

我假設你的程序是這樣的:

public class MyProgram { 

    public void doSomething() { 
    // ... does something ... 
    } 

    public static void main(String[] args) { 
    new MyProgram().doSomething(); 
    } 
} 

我建議你閱讀Swing Tutorial,但一個簡單的GUI來啓動你的程序可能是這樣的:

public class MyProgramLauncher { 
    public static void main(String[] args) { 
    final MyProgram myProgram = new MyProgram(); 

    JFrame frame = new JFrame("My Program"); 
    JComponent cp = frame.getContentPane(); 
    cp.add(new JButton(new AbstractAction("Start") { 
     public void actionPerformed(ActionEvent e) { 
     myProgram.doSomething(); 
     } 
    })); 
    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 
    frame.pack(); 
    frame.setVisible(true); 
    } 
} 

如果您的班級有pause()功能,您可以添加一個類似的JButton來調用該功能,但喲我們必須編寫/實現該功能。

然而,你必須用java MyProgramLauncher來啓動它,這並不是很令人興奮。不過,這將爲您提供一個基本的GUI,您可以在其中嘗試啓動,暫停等。

要將程序變成可以雙擊的程序,您需要創建一個JAR file。這基本上是一個特殊的ZIP文件,其中包含應用程序中的所有類,另外還有一個manifest.xml文件,它描述了這些類和(對於可啓動的JAR文件)標識了在啓動JAR文件時應調用main()方法的「主類」。

要將該JAR文件轉換爲或多或少自包含的可部署應用程序是一個更大的麻煩,並且有很多選項。 Deployment Tutorial可能是一個開始的地方。

1

基本上你需要一個本地啓動器,但我無法弄清楚你的意思是什麼「停頓」......發送進程睡覺?

我認爲應該很容易在Unix系統中使用xdialog命令使用shellcript實現。

你需要實現一個狀態機:

  • 狀態: 「停止」
    • 開始:執行java YourProgram並存儲在PID變量。狀態更改爲 「已啓動」
    • 暫停:什麼也不做/禁用
    • 停止:什麼也不做/禁用
  • 狀態: 「已啓動」
    • 開始:什麼也不做/禁用
    • 暫停:將STOP信號(如ctr + z)發送到進程。將狀態更改爲「已暫停」
    • 停止:將INT信號(如ctr + c)發送到進程。狀態更改爲 「已停止」
  • 國家 「暫停」
    • 開始:什麼也不做/禁用
    • 暫停:發送CONT信號(就像做FG)的過程。將開始更改爲「開始」
    • 停止:將INT信號(如ctr + c)發送到進程。狀態更改爲「已停止」

有了這個,你可以循環腳本和反應按鈕。請參閱kill對話框或xdialog以獲取有關實施的更多詳細信息。

+2

本地啓動器是沒有必要的。可執行文件.jar工作得很好,並不會人爲地限制平臺兼容性。 – 2009-10-02 08:48:01

+0

但它沒有按鈕,只是啓動應用程序......他需要一些圖形 - 啓動 - (不是在啓動後)他的應用程序,對吧? – fortran 2009-10-02 12:33:57

相關問題