图像没有显示在窗口上

时间:2017-05-04 15:32:47

标签: java image swing imageicon

我已将代码缩减为如此简单的功能:在窗口上显示图片。但是为什么图片没有出现但是我试过了?我创建了一个JFrame,然后创建了一个JPanel,期望显示该图片。然后将面板添加到框架中。顺便说一下,我导入了图片并双击它以获取网址。

import java.awt.*;

import javax.swing.*;

import com.sun.prism.Graphics;

public class GUI {
    JFrame frame=new JFrame("My game");
    JPanel gamePanel=new JPanel();

    public static void main(String[] args){
        GUI gui=new GUI();
        gui.go();
    }

    public void go(){

        frame.setSize(300, 400);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        Background backPic=new Background();
        backPic.setVisible(true);
        frame.getContentPane().add(backPic);        

        JPanel contentPane=(JPanel) frame.getContentPane();
        contentPane.setOpaque(false);

        frame.setVisible(true);
        }

    class Background extends JPanel{
            public void paintComponent(Graphics g){
                ImageIcon backgroundIcon=new         ImageIcon("file:///E:/eclipse/EL/backgroundPicture.jpg");
                Image backgroundPic=backgroundIcon.getImage();

                Graphics2D g2D=(Graphics2D) g;
                g2D.drawImage(backgroundPic,0,0,this);
            }
        }
}

1 个答案:

答案 0 :(得分:2)

这是因为您导入了/run/media/mohamedRadwan/games moves。它应该是com.sun.prism.Graphics

我也会从你的路径中删除“file:///”位。而且您可能也不希望在每个绘画事件上加载图像。这是Background类的更好版本; -

java.awt.Graphics