我正在做一些非常基本的编码,只是试图学习键绑定背后的基本概念。这一切似乎都很直接,但是我的逻辑或结构出现问题,导致我的代码无法按照我希望的方式执行。使用键绑定
这里是我的代码
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