import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Test extends JFrame
{
WoDeMianBan mianBan=null;
public static void main(String[] args)
{
Test t1=new Test();
}
public Test()
{
mianBan=new WoDeMianBan();
this.add(mianBan);
this.addKeyListener(mianBan);
this.setSize(400,300);
this.setLocation(300,280);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
class WoDeMianBan extends JPanel implements KeyListener//继承JPanel面板类 并且实现KeyListener键盘监听接口
{
int x=50,y=60;//定义坐标
public void paint(Graphics g)//画笔类
{
super.paint(g);//继承父类画笔
g.fillRect(x, y, 30, 30);//新建实心正方形,坐标为x,y 大小30×30
}
public void keyTyped(KeyEvent e)// 必须重写接口中的函数
{
//有字符输出的函数
}
public void keyPressed(KeyEvent e)//键盘按下函数
{
// System.out.println("键盘被按下");
// System.out.println((char)e.getKeyCode());
if(e.getKeyCode()==KeyEvent.VK_DOWN)//如果键盘代码等于↓
{
//System.out.println("下");
y+=3;
}else if(e.getKeyCode()==KeyEvent.VK_UP)
{
//Systen.out.println("上");
y-=3;
}else if(e.getKeyCode()==KeyEvent.VK_LEFT)
{
//System.out.println("左");
x-=3;
}else if(e.getKeyCode()==KeyEvent.VK_RIGHT)
{
//System.out.println("右");
x+=3;
}
this.repaint();//正方体移动,必须重新绘图,就要重新调用画笔函数。
}
public void keyReleased(KeyEvent e) //必须重写接口中的函数
{
//按键抬起
}
}
JAVA进阶8.6——事件处理(3)——键盘事件
最新推荐文章于 2024-05-22 10:00:47 发布