2012-03-26 133 views
0

是否可以模擬點擊按鈕,類似於doClick(),但只是圖形模擬它,不會產生任何ActionEvent的。如果知道我可以擴展課程,請用簡單的if語句做我自己的doClick。但它有其他可能嗎?JButton .doClick()沒有做任何事情?

我想要這個,因爲我有一個按鈕,用戶可以按下,但有時計算機(它在遊戲中)「按下」按鈕。所有的邏輯都是在另一個線程中完成的,我只是想爲用戶顯示它。

回答

1

如果您深入瞭解您使用的外觀和感覺的細節,您可能會看到它如何檢測並將按鈕繪製在「向下」狀態,然後模擬該按鈕?

或者你可以擴展/實現ButtonModel和混亂的setPressed/isPressed狀態?

+0

我認爲最簡單的解決方案是檢查actionlistener中的模型,檢測它是手動印刷機還是電腦印刷機。但即時通訊仍然有趣,如果有任何解決方案只是點擊按鈕上的按鈕。 – joxxe 2012-03-26 20:44:33

0

如果你想點擊按鈕試試這個:

try 
     { 
      robot = new Robot(); 
      robot.mouseMove(0,500); 
      robot.mousePress(InputEvent.BUTTON1_MASK); 
      robot.mouseRelease(InputEvent.BUTTON1_MASK); 
     }catch(Exception e){} 

但也許你會喜歡簡單地禁用按鈕,當用戶不應該點擊

Button.setEnabled(false);

+0

問題是,我希望它看起來像點擊,graphicaly。但不要產生任何行爲(或者可能是某種其他行爲,我可以在聽衆中「扔掉」)。 – joxxe 2012-03-26 20:36:00

+0

你的問題不清楚,你在找什麼? – exomic 2012-03-26 20:51:50

0

您可以設置是否啓用,所以使用「buttonName.setEnabled(false);」

1

我認爲最簡單的解決方案是檢查ActionListener中的模型。

我沒有看到區分兩者的方法;該模型對於誰調用它的方法而言是無知的。相反,您可以保存所有偵聽器,調用doClick(),並還原偵聽器。它看起來像你將不得不檢查行動,更改和項目監聽器。