wywoływanie metody java do rysowania grafiki

Próbuję narysować prostą grafikę do ramki. Chciałbym także móc dostosować to, co rysuję, z mojej głównej metody. Na przykład ustawienie zmiennej String do wydrukowania lub współrzędnych prostokąta.

Problem, który wydaje mi się mieć, jest taki, żepaintComponent metoda jest wywoływana przed ustawieniem zmiennych klasy. Jak mogę zmienić ten kod, aby móc skonfigurowaćJPanel/JFrame zmienne PRZED rysowaniem na ekranie?

Dzięki

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

public class Test {

    public static void main(String[] args) {
        FrameTest test_frame = new FrameTest();
        test_frame.test_string = "I WANT TO DRAW THIS STRING";
    }
}

class FrameTest extends JFrame{
    private static final long serialVersionUID = 1L;
    String test_string;

    public FrameTest(){
        this.test_string = "TEMP STRING FROM FRAME";
        JFrame gui = new JFrame();
        gui.setTitle("Test Title");
        gui.setSize(400,400);
        gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        Painting painting = new Painting();

        Container pane = gui.getContentPane();
        pane.setLayout(new GridLayout(1,1));

        pane.add(painting);
        gui.setVisible(true);

    }
}

class Painting extends JPanel{
    private static final long serialVersionUID = 1L;
    String test_string;

    public Painting(){
        setBackground(Color.WHITE);
        this.test_string = "TEMP STRING FROM PANEL";
    }

    public void paintComponent(Graphics g) {
        super.paintComponent(g);

        g.setColor(Color.RED);
        g.drawString(test_string, 20, 20);
    }
}

questionAnswers(4)

yourAnswerToTheQuestion