Java侦听按钮和键盘单击 [英] Java Listen to Button and Keyboard click

查看:896
本文介绍了Java侦听按钮和键盘单击的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何聆听按键并触发JButton?

How to listen to key pressed and trigger a JButton?

例如:

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

I have "A" JButton as the GUI on a panel. I have a buttonListener implemented on "aButton", that will change the screen to something else. I want this button to be triggered by both mouse click and keyboard pressed.

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

How can I trigger this "A" JButton by pressing "a" on keyboard while having the buttonListener implemented as well?

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

My current code cannot triggered the key event.

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");
    }
  }
 }

}

推荐答案

创建操作.然后,使用ActionListener将Action添加到按钮.然后,您可以通过将Action绑定到KeyStroke来处理键盘事件.

Create an Action. Then you add the Action to the button by using an ActionListener. And you handle the keyboard event by binding the Action to a KeyStroke.

阅读 Swing教程.关于以下内容:

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

让您入门.

或者您也可以为按钮分配助记符以调用该按钮.阅读JButton API.

Or you can also just assign a mnemonic to the button to invoke the button. Read the JButton API.

这篇关于Java侦听按钮和键盘单击的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆