为什么我的面板/窗口中没有图片?

1 java swing image jpanel jframe

我的代码有什么问题?我只想在我的窗口中有一张图片...

//class ImagePanel:

public class ImagePanel extends JPanel {

    private static final long serialVersionUID = -7664761101121497912L;

    public Image i;

    public ImagePanel(Image i) {
        this.i = i;
    }

    @Override
    public void paintComponents(Graphics g) {
        super.paintComponent(g);        
        g.drawImage(this.i, 0, 0, null);
    }
}

//class Main

public class Main extends JFrame {

    public static void main(String[] args) {

    JFrame frame = new JFrame();
        frame.setSize(1024, 768);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        ImagePanel panel = null;

        try {
            panel = new ImagePanel(ImageIO.read(new File("D:/test.JPG")));
        } catch (IOException e) {
            e.printStackTrace();
        }

        frame.getContentPane().add(panel);
        frame.setVisible(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

只有一个没有图片的窗口:(问题是什么?是否有一种简单的方法来设置窗口的大小==图片大小?

谢谢!

Gen*_*zer 5

你必须覆盖paintComponent(Graphics g)而不是paintComponents(Graphics g).