2010-11-22 20 views
2

JPanelをベースにしたJavaゲームを作成しました。私はそれをJFrameに追加すると完全に動作し、JAppletに追加してeclipseの組み込みアプレットテスターでテストすると完全に動作します。しかし、アプレットをHTMLサイトから実行しようとすると、動作しません。ロードされますが、キーボード入力は必要ありません。私はそれを "プレスS"がゲームを開始する場所に設定していますが、ゲームをクリックしてsを押しても何も起こりません。Javaアプレットのフォーカス

私はそれが自動的に行われたと思ったので、キーボードフォーカスを設定する必要がありますか?

+0

あなたはどのプラットフォームのどのブラウザを使用していますか?キーボードを使用する他のアプレットをテストして、ブラウザの問題を排除しましたか? (キーボードを使用していますが、SwingではないAWTをベースにしたhttp://xenomachina.com/soko/を試すことができます) –

答えて

1

ただし、キーボード入力は必要ありません。

KeyEventsは、フォーカスのあるコンポーネントにのみ渡されます。私はあなたのパネルにフォーカスがないと推測しますので、パネルにフォーカスがあることを確認してから、GUIが表示されたらrequestFocusInWindow()メソッドを使用して、パネルにフォーカスがあることを確認してください。

しかし、この問題を解決するには、KeyListenerに頼るのではなく、代わりにKey Bindingsを使用する方がよいでしょう。 SwingはKey Bindingsを使用するように設計されています。

続きを読むKey Bindingsを参照してください。

+0

アプレットにパネルを追加した後にJAppletを拡張するクラスのrequestFocusInWindow()を呼び出すと、どうもありがとうございました。 – Jeff

+0

また、今後キーリスナーに対してキーバインディングを使用することを検討します。 – Jeff

+0

@ジェフ、なぜあなたはまだ答えを受け入れていないのですか? Key Bindingsのアプローチについて言及しただけですみます。あまりにも多くの初心者が知覚された簡単な方法を取る。 – camickr

関連する問題