2009-12-01 66 views
3

現在,我不知道這是可能的,甚至是最好的方式來完成我想要做的,但基本上我創建一個非常簡單的模擬程序用一個非常簡單的Swing GUI。如何有計劃等待按下按鈕在Java中

每輪模擬後,界面上的一些按鈕,用戶能夠進行更改,然後用戶可以點擊「繼續」按鈕重新啓動模擬。模擬本身基本上是一個while循環,在繼續之前需要等待用戶的操作。我的問題是如何讓程序停止並等待用戶按下「繼續」按鈕?請讓我知道如果有更多的細節我可以提供,如果這不清楚!

編輯:

我要在這裏添加一些簡單的代碼,所以也許這會更有意義。該程序分爲兩部分,即模擬類和視圖。所以按下的按鈕在視圖類中,而模擬在其類中進行。

模擬類:

SimulationView view = new SimulationView(); // extends JFrame 

while (!some_condition) { 
    // code 
    // need user action via button press here before continuing! 
} 
+1

程序應該只反正等待,所以當你點擊的東西被處理和完成的情況下,和應用程序只是等待。這是事件驅動的。 – 2009-12-01 23:43:18

回答

5

最有可能去的最好辦法就是封閉一輪模擬的方法,是將被從連接到你想要的按鈕的動作監聽器執行。

編輯後: 有人需要控制擺在首位的模擬,所以你可以做到以下幾點:

SimluationClass 
{ 
    public int startSim() 
    { 
     ... 
    } 
} 

class SimulationView 
{ 

    SimulationClass sim = new SimulationClass();  

    private void init() 
    { 

     JButton button = new JButton("Start"); 
     button.addActionListener(new ActionListener() { 
      void actionPerformed(...) 
      { 
       sim.startSim() 
      } 
      }); 
    } 
} 

但請記住,這將凍結您的GUI和SIM卡的方法將被執行來自事件線程。

+0

看到我的編輯上面,也許它會幫助我的情況更有意義。我明白你在說什麼,但我不知道如何將我的課程分成兩個班級。 – seth 2009-12-01 23:59:49

+0

是的,現在實際上是有道理的。在模擬中有一個視圖的實例之前,但是你擁有它的方式要好得多。謝謝,我想我可以用它繼續前進! – seth 2009-12-02 00:38:21