Java事件处理机制2

java

实现一个小程序,怎样让小球受到键盘的控制,上下左右移动,如图:

 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

回到顶部