Java 的 drawImage 方法不显示图像

Java's drawImage method doesn't show the image

我只是 Java 编程的初学者,我正在使用 NetBeans。下面的代码运行并且没有显示错误但没有看到图像!此图像位于 "frame" 包中,位于这两个 类 旁边。

package frame;

import javax.swing.JPanel;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.imageio.ImageIO;

public class Screen extends JPanel{

    private BufferedImage image;

    public Screen(){
        try {
            System.out.println("OK");
            image = ImageIO.read(getClass().getResourceAsStream("phantomPDF.png"));
        } catch(IOException e) {
            e.printStackTrace();
        }

    repaint();
    }

public void paint(Graphics g){
    g.drawImage(image, 100, 100, null);
    System.out.println("Yes");
    }

}

这是我的框架和主要方法:

package frame;

import java.awt.GridLayout;
import javax.swing.*;

public class Frame extends JFrame{

    Screen s;

    public Frame() {

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(400, 600);
        setResizable(false);
        setTitle("Graphics");
        setVisible(true);

        init();

    }


    public void init(){
        setLocationRelativeTo(null);

        setLayout(new GridLayout(1, 1, 0, 0));

        s = new Screen();
        add(s);


   }

    public static void main(String[] args){
        new Frame();
    }
}

我不得不将 "try - catch" 语句放入 "paint" class 中,这样现在就可以正常工作了……但我为什么要那样做?