如何在Java中的Gui中添加按键监听器 [英] How can i add a keylistener to my Gui in java

查看:554
本文介绍了如何在Java中的Gui中添加按键监听器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个简单的Gui

I have a simple Gui

public Gui(){
    ablak = new JFrame("Snake game");
    ablak.setVisible(true);
    ablak.setSize(new Dimension(600,600));
    ablak.setFocusable(true);
    ablak.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    ablak.add(new Grid());
    ablak.add(new Key());
}

以及用于列出事件的列表器的键类

And a key class to listner to keyevents

package snake;

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

public class Key implements KeyListener {

    @Override
    public void keyPressed(KeyEvent e) {
        if(e.getKeyCode() == KeyEvent.VK_UP){
            System.out.println("Hi");
        }
    }

    @Override
    public void keyTyped(KeyEvent e) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public void keyReleased(KeyEvent e) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }


}

如您所见,按向上箭头键应显示类似Hi的字样,但没有任何反应. 如果我尝试在Gui类中添加(new Key()),则会出现错误. 我在做什么错了?

As you can see pressing the Up arrow key should say something like Hi, but nothing happens. If i try to add(new Key()) in Gui class it gives an error. What am i doing wrong?

谢谢

推荐答案

您需要使用addKeyListener()方法:

public class Test2 {
    public static void main(String[] args) {
        JFrame ablak = new JFrame("Snake game");
        ablak.setVisible(true);
        ablak.setSize(new Dimension(600,600));
        ablak.setFocusable(true);
        ablak.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        ablak.addKeyListener(new KeyListener(){
             @Override
                public void keyPressed(KeyEvent e) {
                    if(e.getKeyCode() == KeyEvent.VK_UP){
                        System.out.println("Hi");
                    }
                }

                @Override
                public void keyTyped(KeyEvent e) {
                    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
                }

                @Override
                public void keyReleased(KeyEvent e) {
                    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
                }
        });
        ablak.setVisible(true);
    }
}

这篇关于如何在Java中的Gui中添加按键监听器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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