2012-04-06 149 views
0

我在JFrame中製作某種基於回合的戰鬥系統,玩家在輪到他時點擊一個按鈕。問題是:程序如何等待鼠標單擊按鈕?它是這樣的:Java:等待鼠標輸入(點擊)

,而它是玩家的回合{

  • 等待鼠標輸入

  • 如果輸入==攻擊(例如)

    -> attack 
    

    否則,如果input == item

    -> use item 
    

+1

你的問題是什麼? – 2012-04-06 05:33:35

+0

我已經把它放在while循環中,但框架的內容不顯示我認爲這是因爲while循環 – Zik 2012-04-06 05:37:13

+0

是什麼?我的問題是程序如何等待鼠標點擊按鈕? – Zik 2012-04-06 05:37:31

回答

3

您不必等待點擊;你讓Swing爲你做。相反,你把你想做的任何事情放入一個ActionListener並將它附加到按鈕上,以便在單擊該按鈕時執行它。

至於輪到你,你只需要一個成員變量的地方,保持跟蹤它的輪到它;按鈕處理程序然後必須查看該變量才能知道該怎麼做。構建東西

的一個好方法,順便說一下,可能是有一個Player類和Game類,並在Game成員稱爲currentPlayer。然後ActionListener(它將Game對象保留爲其自己的成員變量)可以在Game中查看currentPlayer,並簡單地在適當的Player對象上調用makeMove()

+0

好吧,我會想到另一種解決方案。謝謝! – Zik 2012-04-06 05:45:40