Redimensionar o desenho para corresponder ao tamanho do quadro

Eu escrevi um aplicativo personalizado que desenha tudo dentro do paint () com base em posições fixas de pixel. Desativei o redimensionamento do quadro para que fique sempre visíve

No entanto, agora eu gostaria de poder redimensioná-lo, mas não quero alterar meu código de drawling. Eu esperava poder pegar o quadrado de 300 x 300 do objeto Graphics g e redimensioná-lo para o tamanho atual do JFrame depois de todo o meu código, mas não tenho ideia do que estou fazend

Aqui exemplo de código. Neste, quero que o quadrado 100x100 permaneça no meio, proporcional ao JFrame redimensionado:

package DrawAndScale;

import java.awt.Color;
import java.awt.Graphics;

public class DASFrame extends javax.swing.JFrame {
    public DASFrame() {
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        this.setSize(300, 300);
    }

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new DASFrame().setVisible(true);
            }
        });
    }

    @Override
    public void paint(Graphics g) {
        g.setColor(Color.BLACK);
        g.fill3DRect(100, 100, 100, 100, true);
    }
}

Obrigado

questionAnswers(4)

yourAnswerToTheQuestion