後,我有Menu
類按鈕 - newGame並退出:按鈕JFrame的活躍創造新JPanel
public class Menu extends JFrame
{
JButton newGameButton = new JButton();
...
@Override
public void mouseClicked(MouseEvent e)
{
game.start();
}
}
點擊按鈕,新的遊戲開始後,所以該類:
public class Game extends JPanel implements Runnable
{
private Thread t;
public void start()
{
t = new Thread(this);
t.start();
setVisible(true);
}
}
當我創建JPanel
後,遊戲啓動並且按鈕不可見,但是如果我單擊某個按鈕的位置,該按鈕會閃爍並繼續。我正在使用paintComponent(g)
方法進行繪製,之前我在Canvas
而不是JPanel
上進行了繪製,之後將其更改爲JPanel
我有這個問題,有什麼想法嗎?
編輯:here是工作(Canvas)和非工作(JPanel)代碼,在JPanel中我可以多次點擊按鈕,因爲我想要的。
爲了更好地幫助越早,張貼[MCVE](http://stackoverflow.com/help/ mcve)(最小完整和可驗證示例)。另外,那個'Runnable'看起來不對。所有的GUI更新都應該在EDT上,並且運行它的'Thread'不是。 –
您是否嘗試過我的解決方案發布在[KeyListener僅在點擊畫布後激活](http://stackoverflow.com/questions/22724286/keylistener-active-only-after-click-on-canvas/22724561#22724561)。根據您的意見,它在Canvas中工作正常,但現在它在使用JPanel後無法工作。試試我的解決方案,您不需要將其轉換爲JPanel。 – Braj
感謝Braj的幫助,但是我刪除了KeyListener,現在我正在使用密鑰綁定並且它的工作非常完美。 –