// 这是我初步坦克的编程,为什么我按上下左右键,坦克不能移动?
package it;import java.awt.Color;import javax.swing.JFrame;public class Game {
public Game(){
initJframe();
}
public void initJframe(){
JFrame frame=new JFrame();
TankJpanel tankJpanel=new TankJpanel();
tankJpanel.setBounds(0, 0, TankJpanel.WIDTH_TANKPANEL, TankJpanel.HEIGHT_TANKPANEL);
tankJpanel.setBackground(Color.GREEN);
frame.setLayout(null);
frame.add(tankJpanel);
frame.setBounds(100, 100, 800, 600);
frame.setBackground(Color.BLACK);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setResizable(true);
}
public static void main(String[] args) {
new Game();
}
}
package it;import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;import javax.swing.JPanel;public class TankJpanel extends JPanel{
private static final long serialVersionUID = -1449702864935143850L;
int x=100;
int y=50; public static final int WIDTH_TANKPANEL=640;
public static final int HEIGHT_TANKPANEL=480; Image offScreenImage=null;
public TankJpanel(){
initTankJpanel();
}
public void paint(Graphics g) {
super.paint(g);
Color c=g.getColor();
g.setColor(Color.RED);
g.fillOval(x,y,30,30);
g.setColor(c);
}
public void update(Graphics g) { super.update(g);
if(offScreenImage==null){
offScreenImage=this.createImage(WIDTH_TANKPANEL, HEIGHT_TANKPANEL);
}
Graphics gOffScreenImage=offScreenImage.getGraphics();
paint(gOffScreenImage);
g.drawImage(offScreenImage,0,0,null);
} public void initTankJpanel() {
TankStart();
addMonitorAdapter();
}
public void TankStart(){
new Thread(new TankMoveDriver()).start();
}
private class TankMoveDriver implements Runnable{
public void run() {
while(true){
repaint();
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public void addMonitorAdapter(){
this.addKeyListener(new KeyMonitor());
}
private class KeyMonitor extends KeyAdapter{ public void keyPressed(KeyEvent e) {
// super.keyReleased(e);
int key=e.getKeyCode();
switch(key){
case KeyEvent.VK_LEFT:
x-=5;
break;
case KeyEvent.VK_RIGHT:
x+=5;
break;
case KeyEvent.VK_UP:
y-=5;
break;
case KeyEvent.VK_DOWN:
y+=5;
break;
}
}
}
}
解决方案 »
- myeclipse9中的MyEclipse Configuration Center菜单突然找不到了
- 难对付的websphere!!糟糕的ssl!!
- 一个关于顺序的问题!
- tomcat自动关闭
- TOMCAT问题
- 启动TOMCAT5时出现严重错误(提示见内)如何是好?
- 动态加载后强制转换的问题!急!(解决马上给分)
- ···Struts中,在ActionForm中定义Timestamp类型的属性,在网页提交时出错????????
- 请问哪里可以下载SUN公司的XML分析器
- j2ee到底能不能在win98下运行呀?如果行,应该怎样配置?
- hibernate 与手动修改数据不同步
- 求助一个Struts方面的问题----救命啊~~
我输入的代码格式怎么不和原来的代码格式相同!
设置字体颜色旁边有个插入代码的功能