我正在做一些非常基本的編碼,只是試圖學習鍵綁定背後的基本概念。這一切似乎都很直接,但是我的邏輯或結構出現問題,導致我的代碼無法按照我希望的方式執行。使用鍵綁定
這裏是我的代碼
public class Board {
ButtonListener buttonlistener;
EnterAction enterAction;
public Board(){
JFrame skeleton = new JFrame();
skeleton.setDefaultCloseOperation(EXIT_ON_CLOSE);
skeleton.setVisible(true);
skeleton.setSize(400, 400);
buttonlistener = new ButtonListener();
enterAction = new EnterAction();
JPanel panel = new JPanel();
panel.setBackground(Color.BLACK);
JButton button = new JButton("button");
button.addActionListener(buttonlistener);
panel.add(button);
skeleton.add(panel);
panel.getInputMap().put(KeyStroke.getKeyStroke("s"), "doEnterAction");
panel.getActionMap().put("doEnterAction", enterAction);
}
public class ButtonListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent arg0) {
System.out.println("button pressed");
}
}
public class EnterAction extends AbstractAction{
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("enter pressed");
}
}
public static void main(String[] args){
new Board();
}
所以,它應該是非常簡單的。正如你所看到的,我只是試着讓它輸出「enter pressed」,只要你按下回車鍵,但它不會打印出任何東西(除非你點擊上面代碼中顯示的按鈕)。另外,在eclipse中,EnterAction類以黃色下劃線,我認爲它可能不是正確的,但我不知道爲什麼它不會。
任何幫助表示讚賞,謝謝。
那麼,什麼是你在Eclipse中得到警示? – Doorknob