3

Java 1.4.2 を使用して簡単なゲームをプログラミングしようとしています。2 つのメイン画面が使用され、どちらもJPanel. そのうちの 1 つは のみで、MouseListener問題なく動作します。最初のものを使用して、2 番目のものを開くことができます。2 番目の画面はMouseListenerと を使用しKeyListenerます。mousePressedメソッドは正常に機能します。ただし、このkeyPressed方法は最初はうまくいきません。それを機能させるには、ウィンドウを最小化してから、機能する前に再度選択する必要があります。

toFront()最初の画面では、2 番目の画面を開くときにコマンドを入力するようにアドバイスされました。つまりsecondFrame.toFront() 、しかし、それは私に言うエラーを与えますNo method "toFront()" was found in type "secondFrame"-にもかかわらず、secondFrame拡張しJPanelます。

「キーバインディング」と呼ばれるものに関する情報を聞いたことがあります。私はこのトピックに慣れていませんが、回避策に頼るのではなく、この問題を核心で解決したいと思います。できれば使いながら解決したいKeyListenerです。

コードのスニペット:

public TowerDefenceBoard{
    (generic stuff)
    setFocusable (true);
    addKeyListener (this);
    requestFocusInWindow ();
}

なぜこれが起こるのか誰か知っていますか?誰かアドバイスはありますか?

前もって感謝します :)

4

1 に答える 1

0

requestFocsInWindow()でパネルを呼び出してみてください。KeyListener

于 2012-08-17T09:50:35.483 に答える