Canvas no dibujan a JFrame

He estado buscando una respuesta para esto, reescribí mi código varias veces, todavía nada. Esencialmente estoy tratando de dibujar un JFrame que contenga solo un rectángulo simple, pero cada vez que no se muestra nada en el Marco, está en blanco.

package com.Graphics;

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

public class GraphicsMain {

    public static void main(String[] args) {

        GraphicsMain myGraphics = new GraphicsMain();

        myGraphics.createDisplay();

    }

    void createDisplay(){

        int width = 500;
        int height = 500;
        String title = "TestFrame";
        Graphics g;

        Canvas myCanvas = new Canvas();
        JFrame myFrame = new JFrame(title);

        myFrame.setVisible(true);
        myFrame.setResizable(false);
        myFrame.setSize(width, height);
        myFrame.setLocationRelativeTo(null);
        myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        myCanvas.setPreferredSize(new Dimension(500, 500));
        myCanvas.setMaximumSize(new Dimension(500, 500));
        myCanvas.setMinimumSize(new Dimension(500, 500));

        myFrame.add(myCanvas);
        myFrame.pack();

        myCanvas.createBufferStrategy(2);

        BufferStrategy bs = myCanvas.getBufferStrategy();

        g = bs.getDrawGraphics();

        g.setColor(Color.red);
        g.fillRect(10, 50, 50, 70);

        bs.show();
        g.dispose();
    }
}

Me doy cuenta de que las convenciones aquí son terribles, esto es solo una práctica para mí con gráficos. Normalmente lo dividiría en clases separadas, etc. Cualquier ayuda es muy apreciada. Gracias

Respuestas a la pregunta(1)

Su respuesta a la pregunta