黑马程序员技术交流社区

标题: 哥们能帮忙解释一下 [打印本页]

作者: HM何伟    时间: 2013-4-7 21:26
标题: 哥们能帮忙解释一下
本帖最后由 HM何伟 于 2013-4-7 22:23 编辑

为什么我这个小球不能移动啊
  1. package TankGame;
  2. import java.awt.*;
  3. import java.awt.event.KeyEvent;
  4. import java.awt.event.KeyListener;
  5. import javax.swing.*;

  6. public class DrawOval extends JFrame {
  7.         MyPanel my = null;

  8.         public static void main(String[] args) {
  9.                 DrawOval dr = new DrawOval();
  10.         }

  11.         public DrawOval() {
  12.                 my = new MyPanel();
  13.                 this.add(my);
  14.                 this.addKeyListener(my);
  15.                 this.setSize(400, 300);
  16.                 this.setVisible(true);

  17.         }

  18. }

  19. class MyPanel extends JPanel implements KeyListener {
  20.         int x = 10;
  21.         int y = 10;

  22.         public void paint(Graphics g) {
  23.                 super.paint(g);
  24.                 g.fillOval(x, y, 15, 15);

  25.         }

  26.         @Override
  27.         // 键被按下
  28.         public void keyTyped(KeyEvent e) {
  29.                 if (e.getKeyCode() == KeyEvent.VK_KP_DOWN) {
  30.                         y++;
  31.                 } else if (e.getKeyCode() == KeyEvent.VK_KP_UP) {
  32.                         y--;
  33.                 } else if (e.getKeyCode() == KeyEvent.VK_KP_LEFT) {
  34.                         x--;
  35.                 } else if (e.getKeyCode() == KeyEvent.VK_KP_RIGHT) {
  36.                         x++;
  37.                 }
  38.                 this.repaint();
  39.         }

  40.         @Override
  41.         // 键被松开
  42.         public void keyPressed(KeyEvent e) {
  43.         }

  44.         @Override
  45.         // 键的一个值被输出.
  46.         public void keyReleased(KeyEvent e) {
  47.         }
  48. }
复制代码

作者: 刘胜寒    时间: 2013-4-7 21:33
这个真不会....
作者: lyg2013    时间: 2013-4-7 21:38
swing 很少用吧,哥们不会、
作者: 刘胜寒    时间: 2013-4-7 21:46
虽然我不会我给你说一下我的猜测....
你好象的处理函数是对的..

你的那个处理函数应该是写在Xxx.addSss(Axx e) 这个函数里面的
我是这样认为的...
这个东西我只看了一遍不是很懂....

上面是我的猜测
作者: HM何伟    时间: 2013-4-7 22:22
哦我明白了,是方法用错了,应该是用在keyPressed中.




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2