我已经在src和bin目录添加图像和交叉检查,图像文件的名称是正确的Java中的drawImage(),为什么不是图像加载?
这里是主类
import javax.swing.*;
public class apples
{
public static void main(String args[])
{
JFrame frame = new JFrame();
MyDrawPanel wid = new MyDrawPanel();
frame.add(wid);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setSize(300,300);
}
}
这里是做的类图像添加部分
import java.awt.*;
import javax.swing.*;
public class MyDrawPanel extends JPanel
{
public void paintComponent(Graphics g)
{
Image image = new ImageIcon("b.png").getImage();
g.drawImage(image,20, 20, this);
}
}
尝试在覆盖方法之前添加@Override,您的IDE应提醒您它未被覆盖(由于错字,...)。除非你有充分的理由不要调用'super.paintComponent(g)'。 – kajacx
“MyDrawPanel”的一个实例的首选大小为0x0像素。您的图像被绘制在边界矩形之外。 –
为了获得更好的性能,不要在'paintComponent(Graphics g)'中创建一个新的ImageIcon(“b.png”)',在'MyDrawPanel'中创建'Image'属性。 – NiziL