我无法显示文件中的图像(paintComponent)

时间:2017-12-29 11:54:44

标签: java paintcomponent

我在显示文件中的图片时遇到问题:

public class Drawing extends JPanel
{
    public void paintComponent(Graphics g)
    {
        //g.setColor(Color.ORANGE);
        //g.fillRect(20, 50, 100, 100);
        Image picture = new ImageIcon("test.jpg").getImage();
        g.drawImage(picture, 3, 4, this);
    }
    public static void main(String[] args) 
    {
    Drawing gui1 = new Drawing();
    JFrame frame = new JFrame();
    frame.setSize(300, 300);
    frame.setVisible(true);
    frame.add(gui1);
    frame.repaint();
    }
}

应该很简单。我在类Drawing的文件夹中有 test 文件。 我不知道我做错了什么。

paintComponent有效,我知道因为我在这段代码中显示了一个正方形。 我正在使用书籍 Head First Java

3 个答案:

答案 0 :(得分:1)

管理图像的最佳方法是在项目中创建一个文件夹:“src / resources”,然后将图像复制到那里,然后使用此代码加载图像:

InputStream stream = getClass().getClassLoader().getResource("myImage.png");
ImageIcon icon= new ImageIcon(ImageIO.read(stream));

这应该在您的IDE中以及应用程序在jar文件中分发时起作用;)

答案 1 :(得分:0)

而不是使用相对路径:"test.png"尝试绝对路径"c:/path/to/test.png"

答案 2 :(得分:0)

尝试将图像路径设为此

File file =new File("path");
Image picture =new ImageIcon(file);

您也可以使用.getabslotePath 在你的情况下,图像位置shuld在同一个文件夹