当前位置: 代码迷 >> J2SE >> 韩顺平小程序,事件处理解决方案
  详细解决方案

韩顺平小程序,事件处理解决方案

热度:97   发布时间:2016-04-23 20:09:10.0
韩顺平小程序,事件处理
本帖最后由 freshnerd 于 2014-11-02 20:32:48 编辑
是这样的,下面是一个通过键盘上下左右控制界面上小球运动的程序,我对着教学视频敲出来的,缺运行不了,也没报错,麻烦大神看一下指点一下,  程序运行的理想效果是 jframe画出了一个小球,按上下左右键它可以移动
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
//事件源是JFrame, Mypanel来监听
public class jianting extends JFrame{
MyPanel mp=null;

public static void main(String[] args)
  {jianting a=new jianting();}

public jianting(){
mp=new MyPanel();
 this.add(mp); 
  this.addKeyListener(mp);
  this.setSize(400,300);
  this.setVisible(true);
}
}
class MyPanel extends JPanel implements KeyListener{
int x=10;
int y=10;
public void paint(Graphics g)
{super.paint(g);
g.fillOval(x,y,20,20);
 }   
//键被按下
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_DOWN)
{
 y++; 
}
else if(e.getKeyCode()==KeyEvent.VK_UP)
{
y--;
}
else if(e.getKeyCode()==KeyEvent.VK_LEFT)
{
x--;
}else if(e.getKeyCode()==KeyEvent.VK_RIGHT)
{
x++;
}
//调用repaint函数,来重绘界面
this.repaint();
}
  //松开按键
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub

}
//键的一个值被输出
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub

}

}

------解决思路----------------------
我测试了下 代码没有问题啊 能出现楼主你想要的效果

  相关解决方案