Java tic-tac-toe ゲームを作成しました。特定の条件で Enter キーが押されたときにメソッドを実行する方法を知りたいと思います。例を以下に示します...
if(/*condition is met*/){
//keyListener
}
Java tic-tac-toe ゲームを作成しました。特定の条件で Enter キーが押されたときにメソッドを実行する方法を知りたいと思います。例を以下に示します...
if(/*condition is met*/){
//keyListener
}
「Enter」キーをトラップする場所に応じて、ActionListener
(テキスト コンポーネントやボタンなどのコンポーネントで) を使用するか、キー バインドをコンポーネントにアタッチすることができます。
public class MyPanel extends JPanel {
public MyPanel() {
InputMap im = getInputMap(WHEN_FOCUSED);
ActionMap am = getActionMap();
im.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "onEnter");
am.put("onEnter", new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
// Enter pressed
}
});
}
}
これは、フォーカスされているコンポーネントに依存します。
1 つの方法は、KeyListener
インターフェイスとその主要なイベント メソッドを実装することです。例えば、
public class MyClass implements KeyListener {
public void keyTyped(KeyEvent e) {
// Invoked when a key has been typed.
}
public void keyPressed(KeyEvent e) {
// Invoked when a key has been pressed.
if (e.getKeyCode() == KeyEvent.VK_ENTER && yourOtherCondition) {
myMethod();
}
}
public void keyReleased(KeyEvent e) {
// Invoked when a key has been released.
}
}
次に、このリスナーを追加します
myComponent.addKeyListener(new MyClass());
または、必要に応じて、
myComponent.addKeyListener(new KeyListener() {
public void keyPressed(KeyEvent e) { /* ... */ }
public void keyReleased(KeyEvent e) { /* ... */ }
public void keyTyped(KeyEvent e) { /* ... */ }
});
詳しくはこちらをご覧ください。
警告 - デスクトップ アプリケーションを作成してからしばらく経ちましたが、java.awt.Component クラスには、KeyListener を実装するクラスを登録するために使用できる addKeyListener() メソッドがあります。これはあなたが探しているものですか?