我剛剛創建了一個java井字遊戲,我想弄清楚如何在某個條件下按下回車鍵時運行方法,例如下面的例子...java中的KeyPressed事件
if(/*condition is met*/){
//keyListener
}
我剛剛創建了一個java井字遊戲,我想弄清楚如何在某個條件下按下回車鍵時運行方法,例如下面的例子...java中的KeyPressed事件
if(/*condition is met*/){
//keyListener
}
根據要陷阱「ENTER」鍵,你可以使用一個ActionListener
(此類組件,如文本組件或按鈕)或附加key binding給您組件
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
}
});
}
}
這將依賴在關注的組件上。
我得到WHEN_FOCUSED,和getActionMap()的錯誤;方法調用 – CodeLover
他們都說找不到符號 – CodeLover
您需要將鍵綁定應用於Swing組件(從'JComponent'擴展)。你的問題的一點點上下文會讓你更容易引導你 – MadProgrammer
一種方法是實現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) { /* ... */ }
});
這是什麼樣的應用程序 - CLI,Swing,Web? – Romski
謝謝Andrew Thompson的編輯建議 – CodeLover
@Romski swing應用程序 – CodeLover