A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© HM何伟 中级黑马   /  2013-4-7 21:26  /  886 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

4 个回复

倒序浏览
这个真不会....
回复 使用道具 举报
swing 很少用吧,哥们不会、
回复 使用道具 举报
虽然我不会我给你说一下我的猜测....
你好象的处理函数是对的..

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

上面是我的猜测
回复 使用道具 举报
哦我明白了,是方法用错了,应该是用在keyPressed中.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马