chiamare un metodo java per disegnare la grafica

Sto provando a disegnare alcuni elementi grafici semplici su una cornice. Mi piacerebbe anche essere in grado di regolare ciò che sto disegnando dal mio metodo principale. Ad esempio, impostando una variabile String da stampare o le coordinate di un rettangolo.

Il problema che mi sembra di avere è che il metodo paintComponent viene chiamato prima che io possa impostare variabili di class. Come dovrei cambiare questo codice per essere in grado di impostare le variabili JPanel / JFrame PRIMA che disegni sullo schermo?

Grazie

 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); } }