Java听按钮和键盘单击

now*_*ere 3 java keyboard swing jbutton actionlistener

如何按下按键并触发JButton?

例如:

我将"A"JButton作为面板上的GUI.我在"aButton"上实现了一个buttonListener,它会将屏幕更改为其他内容.我希望通过鼠标单击和键盘按下来触发此按钮.

如何在实现buttonListener的同时按下键盘上的"a"来触发这个"A"JButton?

我当前的代码无法触发关键事件.

ButtonListener listener;
KeyboardListener keyboardListener;
private JButton aButton;

public MyButtonPanel() {
    listener = new ButtonListener();

    aButton = new JButton ("A");
    aButton.setFont (BUTTON_TEXT);
    aButton.setPreferredSize (new Dimension (60,30));
    aButton.addActionListener (listener);
    aButton.addKeyListener (keyboardListener);

    setLayout (new BorderLayout());
    add (aButton, BorderLayout.CENTER);

}

private class KeyboardListener implements KeyListener
{
    public void keyPressed(KeyEvent arg0) {
        char c = arg0.getKeyChar();
        System.out.println("Pressed " + c);
    }

    public void keyReleased(KeyEvent arg0) {
        char c = arg0.getKeyChar();
        System.out.println("Released " + c);
    }

    public void keyTyped(KeyEvent arg0) {
        char c = arg0.getKeyChar();
        System.out.println("Typed " + c);
    }

}

 private class ButtonListener implements ActionListener {
  public void actionPerformed (ActionEvent event) {
    Object source = event.getSource();

    if (source == aButton) {
        System.out.println("This is a");
    }
  }
 }
Run Code Online (Sandbox Code Playgroud)

}

cam*_*ckr 5

创建一个动作.然后使用ActionListener将Action添加到按钮.并且您通过将Action绑定到KeyStroke来处理键盘事件.

阅读Swing教程.有部分内容:

  1. 如何使用动作
  2. 如何使用键绑定

让你开始

或者您也可以只为该按钮指定一个助记符来调用该按钮.阅读JButton API.