Java图像在使用非常小的代码时不会绘制到屏幕上
根据我正在编写的另一个程序中的一个问题,我做了一个小测试。 我需要在屏幕上画一个图像,但它不工作。 然而,我能在屏幕上画矩形,我不懂 代码: 主要类别:Java图像在使用非常小的代码时不会绘制到屏幕上,java,user-interface,jframe,jpanel,Java,User Interface,Jframe,Jpanel,根据我正在编写的另一个程序中的一个问题,我做了一个小测试。 我需要在屏幕上画一个图像,但它不工作。 然而,我能在屏幕上画矩形,我不懂 代码: 主要类别: package test; import javax.swing.JFrame; public class Main extends JFrame{ private static final long serialVersionUID = 1L; final static int WW = 800; final sta
package test;
import javax.swing.JFrame;
public class Main extends JFrame{
private static final long serialVersionUID = 1L;
final static int WW = 800;
final static int WH = 600;
public Main(){
setSize(WW,WH);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setTitle("Space Game");
add(new testClass());
setVisible(true);
}
public static void main(String[] args) {
new Main();
}
}
testClass类:
package test;
import java.awt.*;
import javax.swing.*;
public class testClass extends JPanel{
private Image image;
public testClass(){
ImageIcon image = new ImageIcon("spaceship.png");
}
public void paintComponent(Graphics g){
g.setColor(Color.BLACK);
g.fillRect(50,50,50,50);
g.drawImage(image,0,0,null);
}
}
请帮助并解释为什么它不起作用。
抱歉,英语不好,敬请帮助:)
*很抱歉,如果我的问题是新手,我是编程新手…您的代码中有一个主要错误:
ImageIcon-image
具有方法范围,而image-image
具有类范围。因此,您试图在paintComponent
中绘制的图像与您在构造函数中加载的图像不同
不过,修复这一问题并不足以让它发挥作用。我建议做以下几点。使用
图像
。然后,在构造函数中,使用image=ImageIO.read(新文件(“spaceship.png”))分配它
spaceship.png存储在哪里?在我的java项目地图(我使用eclipse)中,在src
下,或者紧靠项目下?在我的项目名文件夹中,所以不在src文件夹中(我必须将它移到那里吗?),在进行任何自定义绘制之前,请调用super.paintComponent。将此作为ImageObserver传递给drawImage