如何在java中不使用textfield或textarea获取keyevent?

如何在java中不使用textfield或textarea获取keyevent?,java,keyevent,Java,Keyevent,我正在学习java中的GUI。现在,我正在编写一个关于button的小程序,我有一个问题。通常,我用鼠标点击一个按钮,然后设置一个消息对话框,但现在,我想设置一个方法。在这个方法中,我使用KeyEvent,我想按下一个键,程序将自动选择按钮而不使用鼠标。我已经使用了TextArea和TextField,现在我想在不使用TextArea和TextField的情况下使用这个方法。 示例:当我单击按钮时,将显示消息对话框。现在,当我按A时,将显示消息对话框,而不是单击按钮。 请帮帮我 您可以在JFra

我正在学习java中的GUI。现在,我正在编写一个关于button的小程序,我有一个问题。通常,我用鼠标点击一个按钮,然后设置一个消息对话框,但现在,我想设置一个方法。在这个方法中,我使用
KeyEvent
,我想按下一个键,程序将自动选择按钮而不使用鼠标。我已经使用了TextArea和
TextField
,现在我想在不使用
TextArea
TextField
的情况下使用这个方法。 示例:当我单击按钮时,将显示消息对话框。现在,当我按A时,将显示消息对话框,而不是单击按钮。
请帮帮我

您可以在
JFrame
中添加
KeyListener
。这是一个很好的教程

范例

让我们创建一个实现
KeyListener
的类,并假设您有一个扩展
JFrame
的类,名为
Program

public class KeyMapper implements KeyListener
{
    // Lots of methods will need to be written. I won't do them all.

    private Program world;

    public KeyMapper(Program world)
    {
         this.world = world;  
    }

    /**
     * This is the event that fires when a key is hit.
     * @param e the event object passed when a key is hit.
     * @Override
     */
    public void keyTyped(KeyEvent e) {
         if(e.getKeyChar() == 't') {
             world.callMethod(); 
         }
    }
}
KeyMapper
现在只要点击
t
,就会调用程序中的方法。要将其添加到
程序中
,可以使用以下行:

this.addKeyListener(new KeyMapper(this));

对于更大的事件处理,我建议使用@Chris的建议,但对于像您这样的小建议,例如,在keyPress上调用一个简单的方法,我个人会选择匿名侦听器

.addKeyListener(new KeyListener() {  
    public void keyPressed(KeyEvent e) {  
        //method call goes here 
    }  
});

对不起,我不明白:(这是我程序的小程序查看器。它是扫雷游戏的模拟器:我的想法是用键盘而不是鼠标点击来选择按钮。你能给我你的facebook或电子邮件吗?请,我真的需要它!你能为我解释一下吗?