Java事件处理机制2
实现一个小程序,怎样让小球受到键盘的控制,上下左右移动,如图:
1 public class Demo3 extends JFrame{2 MyPanel mp=null;
3 public static void main(String[] args) {
4 Demo3 demo=new Demo3();
5 }
6
7 //构造函数
8 public Demo3(){
9 mp=new MyPanel();
10
11 //mp加入到JFrame
12 this.add(mp);
13
14 this.addKeyListener(mp);
15
16 this.setSize(400,300);
17 this.setVisible(true);
18 }
19 }
20
21 //定义自己的面板
22 class MyPanel extends JPanel implements KeyListener{
23 int x=10;
24 int y=10;
25 public void paint(Graphics g){
26 super.paint(g);
27
28 g.fillOval(x, y, 10, 10);
29 }
30
31 @Override
32 public void keyPressed(KeyEvent e) { //代表某个键被压下去了
33 //System.out.println("键被压"+(char)e.getKeyCode());
34 if(e.getKeyCode()==KeyEvent.VK_DOWN){
35 y++;
36 }else if(e.getKeyCode()==KeyEvent.VK_UP){
37 y--;
38 }else if(e.getKeyCode()==KeyEvent.VK_LEFT){
39 x--;
40 }else if(e.getKeyCode()==KeyEvent.VK_RIGHT){
41 x++;
42 }
43 //调用repaint()函数,重绘界面
44 this.repaint();
45 }
46
47 @Override
48 public void keyReleased(KeyEvent e) { //键被释放
49 // TODO Auto-generated method stub
50 }
51
52 @Override
53 public void keyTyped(KeyEvent e) { //键的一个值被输出
54 // TODO Auto-generated method stub
55 }
56 }
这里的事件源是JFrame
事件的监听者是mp。
运行程序,效果如下:(若想实现小球的快速移动,只需修改x,y增加的大小)
以上是 Java事件处理机制2 的全部内容, 来源链接: utcz.com/z/389570.html