Jak działa paintComponent?

To może być bardzo ważne pytanie. Właśnie zaczynam uczyć się Java

Nie rozumiem działania metody paintComponent. Wiem, że jeśli chcę coś narysować, muszę przesłonić metodę paintComponent.

public void paintComponent(Graphics g)
{
   ...
}

Ale kiedy to się nazywa? Nigdy nie widzę niczego takiego jak „object.paintComponent (g)”, ale nadal jest rysowany, gdy program jest uruchomiony.

A jaki jest parametr Graphics? Skąd to jest? Parametr musi być podany w momencie wywołania metody. Ale jak powiedziałem wcześniej, wydaje się, że ta metoda nigdy nie jest jawnie nazywana. Więc kto udostępnia ten parametr? I dlaczego musimy rzucić go na Graphics2D?

public void paintComponent(Graphics g)
{
    ...
    Graphics2D g2= (Graphics2D) g;
    ...
}

questionAnswers(4)

yourAnswerToTheQuestion