java repaint() 方法无法执行,不知道是哪个原因
老白小白 2021-05-08 04:22:27 直接贴代码,因为复制的不对,开头有些空格别在意
package fighting;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.image.BufferedImage;
import java.io.File; import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Game extends JFrame implements Runnable {
BufferedImage mob = null;
BufferedImage biu = null;
static int x = 736, y = 436;
static JPanel iconpanel = new JPanel();
public static void main(String[] args) {
Game game = new Game();
new Game().setVisible(true);
Thread t = new Thread(game);
t.start();
}
@Override
public void run() {
this.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
Game g =new Game();
int key=e.getKeyCode();
switch(key) {
case KeyEvent.VK_W:
x-=1;
g.repaint();
case KeyEvent.VK_S:
x+=1;
g.repaint();
case KeyEvent.VK_A:
y-=1;
g.repaint();
case KeyEvent.VK_D:
y+=1;
g.repaint();
}
}
public void keyReleased(KeyEvent e) { }
public void keyPressed(KeyEvent e) { }
}); }
public Game() {
try {
biu = ImageIO.read(new File(
"E:\\JAVA资源包\\Java从入门到精通(第5版)\\2. TM(实例源程序)\\TM(实例源程序)\\sl\\shenshenxiaoshe2021\\src\\fighting\\biu.png"));
mob = ImageIO.read(new File( "E:\\JAVA资源包\\Java从入门到精通(第5版)\\2. TM(实例源程序)\\TM(实例源程序)\\sl\\shenshenxiaoshe2021\\src\\fighting\\monster.png"));
} catch (IOException e) {
e.printStackTrace();
}
setTitle("打怪");
setBounds(0, 0, 800, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.drawImage(biu, x, y, this);
g2.drawImage(mob, 50, 50, this);
}
}
我是中小学生各位大神帮个忙感谢了