求大神指点,我是刚学的菜鸟
我想实现在JFrame中画出一个图形,然后让键盘按键控制图形的移动
但是按下按键后图形移动部了,求大神指点。。。。。
package deal;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
public class move extends JFrame {
int x=80,y=80,speed=10;
Color redColor;
private static final long serialVersionUID = 1L;
public move(){
addKeyListener(new KeyAdapter(){
public void keyPressed( KeyEvent e){
if(e.getKeyCode()==KeyEvent.VK_W){
y=y-speed;
System.out.println("\n Go Up");
}else if(e.getKeyChar()==KeyEvent.VK_S){
y=y+speed;
System.out.println("\n Go Down");
}else if(e.getKeyCode()==KeyEvent.VK_A){
x=x-speed;
System.out.println("\n Go Left");
}else if(e.getKeyCode()==KeyEvent.VK_D){
System.out.println("\n Go Right");
x=x+speed;
}else {
System.out.println(e.getKeyChar());
repaint();
}
}
});
setSize(400,300);
setVisible(true);
setLocation(400,200);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
dispose();
System.exit(0);
}
});
}
public void paint(Graphics g){
g.setColor(Color.GREEN);
g.fillRect(x, y, 40, 40);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new move();
}
但是按下按键后图形移动部了,求大神指点。。。。。
package deal;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
public class move extends JFrame {
int x=80,y=80,speed=10;
Color redColor;
private static final long serialVersionUID = 1L;
public move(){
addKeyListener(new KeyAdapter(){
public void keyPressed( KeyEvent e){
if(e.getKeyCode()==KeyEvent.VK_W){
y=y-speed;
System.out.println("\n Go Up");
}else if(e.getKeyChar()==KeyEvent.VK_S){
y=y+speed;
System.out.println("\n Go Down");
}else if(e.getKeyCode()==KeyEvent.VK_A){
x=x-speed;
System.out.println("\n Go Left");
}else if(e.getKeyCode()==KeyEvent.VK_D){
System.out.println("\n Go Right");
x=x+speed;
}else {
System.out.println(e.getKeyChar());
repaint();
}
}
});
setSize(400,300);
setVisible(true);
setLocation(400,200);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
dispose();
System.exit(0);
}
});
}
public void paint(Graphics g){
g.setColor(Color.GREEN);
g.fillRect(x, y, 40, 40);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new move();
}
...全文
相关推荐
Linux菜鸟专用(菜鸟专用就是给刚学的人用的)
Linux菜鸟专用(菜鸟专用就是给刚学的人用的)。。。
TrintyCore菜鸟工具
用于T端简单修改配置文件使用。
C语言菜鸟基础教程之求1到100的和
题目:求1+2+3+……+98+99+100 (1)用数学方法求解 (2)编写C语言程序求解 解: (1)数学方法 S = 1+2+3+……+98+99+100 = (1+100) + (2+99) + (3+98) + …… + (49+52) + (50+51) = 101 * 50 = 5050 (2)C语言编程 #include <stdio> int main() { int sum = 0; // 赋初值 for(int i = 1; i <= 100; i++) { sum = sum + i; } printf(total is %
菜鸟数据中台技术演进
菜鸟数据中台是什么? 数据中台和数据平台区别是什么? 菜鸟怎么做数据中台? 怎么考核数据中台? 菜鸟数据中台技术演进的路程是什么? 菜鸟数据中台 和 阿里数据中台的区别是什么? 大家的疑问 数据中台解决什么实际问题?
Git超级教程菜鸟教程
Git超级教程菜鸟教程Git超级教程菜鸟教程Git超级教程菜鸟教程Git超级教程菜鸟教程Git超级教程菜鸟教程Git超级教程菜鸟教程Git超级教程菜鸟教程Git超级教程菜鸟教程


