Изображение появляется только после растягивания фрейма - Java

Узнай цену своей работы

Формулировка задачи:

Такой код:
public class SafeCracker extends JFrame{
    //объявляем и инициализируем safePanel
    URL url = getClass().getResource("img/safe.jpg");       
    Image safe = Toolkit.getDefaultToolkit().getImage(url);
    ImagePanel safePanel = new ImagePanel(safe);
    
    public SafeCracker(){
        setTitle("Взломщик");
        //запрещаем изменять размер окна
        //setResizable(false);
        
        //задаем менеджер размещения
        setLayout(new GridBagLayout());
        GridBagConstraints gridConstraints;
        
        ////размещаем safePanel при помощи менеджера
        safePanel.setPreferredSize(new Dimension(330, 420));
        safePanel.setLayout(new GridBagLayout());
        gridConstraints = new GridBagConstraints();
        gridConstraints.gridx = 0;
        gridConstraints.gridy = 0;
        gridConstraints.gridheight = 3;
        add(safePanel, gridConstraints);
                
        //подбираем оптимальные размеры окна
        pack();
        
        //узнаем размеры экрана и задаем параметры окна
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((int) (0.5 * (screenSize.width - getWidth())), (int) (0.5 * (screenSize.height - getHeight())), getWidth(), getHeight());
 
        setVisible(true);
    }
 
    public static void main(String[] args) {
        //new SafeCracker().setVisible(true);
        SafeCracker sc=new SafeCracker();
    }
 
}
 
//класс для создания safePanel
class ImagePanel extends JPanel 
{
  private Image img;
  public ImagePanel(Image img) 
  {
   this.img = img;
  }
  public void paintComponent(Graphics g) 
  {
    g.drawImage(img, 0, 0,null);
    }
}
Почему изображение появляется только после растягивания фрейма?

Решение задачи: «Изображение появляется только после растягивания фрейма»

textual
Листинг программы
g.drawImage(img, 0, 0,null);
    this.updateUI();

Оцени полезность:

14   голосов , оценка 3.714 из 5