【 java版坦克大战--事件处理】 键盘控制小球上下左右移动

上一节已经学习了事件处理,这一节需要完成通过键盘的上下左右键控制小球移动。

然后再通过应用到我们绘制的坦克上。

 1 /**
 2  * 加深对事件处理机制的理解
 3  * 通过光标的上下左右键,控制小球的左右上下移动.
 4  */
 5 package com.test4;
 6 import java.awt.*;
 7 import java.awt.event.*;
 8 
 9 import javax.swing.*;
10 public class Demo9_4 extends JFrame {
11     
12     MyPanel mp = null;
13     
14     public static void main(String[] args) {
15             Demo9_4 demo9_4 = new Demo9_4();
16     }
17     public Demo9_4(){
18         mp = new MyPanel();
19         this.add(mp);
20         
21         this.addKeyListener(mp);
22         
23         this.setSize(400,300);
24         this.setVisible(true);
25     }
26 
27 }
28 //事件源JFrame->Demo9_4,MyPanel监听者,需要画小球
29 //定义自己的面板
30 class MyPanel extends JPanel implements KeyListener{
31     int x=10;
32     int y=10;
33     public void paint(Graphics g){
34         super.paint(g);
35         g.fillOval(x, y, 10, 10);
36     }
37 
38     @Override
39     public void keyTyped(KeyEvent e) {//输入可以以显示的
40         
41     }
42 
43     @Override
44     public void keyPressed(KeyEvent e) {//按下去.
45 //        System.out.println(e.getKeyCode()==37);
46         if(e.getKeyCode()==KeyEvent.VK_DOWN){
47             y+=10;
48         }else if(e.getKeyCode()==KeyEvent.VK_UP){
49             y--;
50         }else if(e.getKeyCode()==KeyEvent.VK_LEFT){
51             x--;
52         }else if(e.getKeyCode()==KeyEvent.VK_RIGHT){
53             x++;
54         }
55         this.repaint();
56     }
57     @Override
58     public void keyReleased(KeyEvent e) {//松开
59         
60     }
61 }

 

可以通过键盘的上下左右键控制小球运动。

如果感觉不错,请 一个!
by simpman
原文地址:https://www.cnblogs.com/simpman/p/3565804.html