Java-Image没有绘制到屏幕

时间:2015-08-26 15:33:22

标签: java jframe jpanel

我正在尝试使用Java将图像绘制到屏幕上。问题是它没有出现,也没有错误发生。

import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.IOException;

public class GameClass extends JPanel implements ActionListener, KeyListener{

    private BufferedImage image;

    public GameClass(){
        Timer time = new Timer(15, this);
        time.start();
        this.addKeyListener(this);
        this.setFocusable(true);
    }

    public void openImage(){
        try {
            image = ImageIO.read(this.getClass().getResource("spaceship.png"));
        } catch (IOException e) {
            System.out.println("An error occurred!");
        }
    }

    public void paintComponent(Graphics g){
        g.setColor(Color.BLACK);
        g.fillRect(0, 0, Main.WW, Main.WH);
        g.drawImage(image,Main.WW/2,Main.WH/2,null);
    }

    public void actionPerformed(ActionEvent e){
        repaint();
    }

    public void keyPressed(KeyEvent e){
    }

    public void keyReleased(KeyEvent e){
    }

    public void keyTyped(KeyEvent e){

    }
}

1 个答案:

答案 0 :(得分:0)

您需要在构造函数中调用if exist "C:\Users\John\Documents\Week*" ( forfiles /D -30 /P "C:\Users\John\Documents" /M "Week*" /C "cmd /c del @PATH" ) else ( exit ) 方法。

我将其重命名为openImage(),以便此方法可以处理加载多个图像。我还创建了静态图像加载功能。

注意:如果您还没有,请在项目的loadImages()文件夹中创建一个resources/文件夹。此文件夹将包含应用程序的资产,即文本,图像和其他数据文件。

src/