Пробую что-то порисовать в окошке по урокам ютуба. Вроде в уроках все рисуется, а у меня до тех пор, пока не попередвинаешь, поизменяешь размер окна. Видел много других примеров, иначе делалось и все получалось сразу. Хотелось бы понять, что тут не так. Может подскажете? я так полагаю, что надо что-то вызвать, чтобы перерисовалось. Просто команды нет рисовать.
package com.ex;

import javax.swing.*;
import java.awt.*;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Line2D;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.net.URL;

public class Main {
    public static void main(String[] args) {
        JFrame jFrame = getJFrame();
        //список шрифтов
        String[] fonts = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
        jFrame.add(new MyComponent());
    }

    static class MyComponent extends JComponent  {
        @Override
        protected void paintComponent(Graphics g) {
            Graphics2D g2 = (Graphics2D) g;
            Font font = new Font("Arial", Font.BOLD, 20);
            g2.setFont(font);
            g2.drawString("Hello world!", 50, 50);
            Line2D l2 = new Line2D.Double(73 , 73, 100, 100);
            g2.draw(l2);
            Ellipse2D el= new Ellipse2D.Double(70, 70, 170, 170);
            g2.setPaint(new Color(255, 10, 10));
            g2.fill(el);
            Rectangle2D r2 = new Rectangle2D.Double(70, 70, 170, 170);
            g2.draw(r2);
        }
    }

    private static JFrame getJFrame() {
        JFrame jFrame = new JFrame() {

        };
        jFrame.setVisible(true);
        //завершать работу программы при закрытии
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jFrame.setSize(500, 300);
        jFrame.setLocation(600, 400);
        jFrame.setTitle("My app");
        Toolkit toolkit = Toolkit.getDefaultToolkit(); // настройки
        Dimension dimension = toolkit.getScreenSize();
        //   jFrame.setBounds(dimension.width / 2 - 250, dimension.height/2 - 150, 300, 300);
        jFrame.setExtendedState(Frame.MAXIMIZED_BOTH);
        return jFrame;
    }
}