DOMANDA esecuzione metodo

fedi98

Nuovo Utente
121
8
ciao a tutti
non riesco a capre perche all' esecuzione del programma viene eseguito il metodo paintComponent(e quindi viene modificata l' interfaccia secondo le istruzioni) se questo non viene chiamato
grazie in anticipo

Codice:
import java.awt.*;import javax.swing.*;
class MyPanel extends JPanel {
     public void paintComponent(Graphics g){
          super.paintComponent(g);
          g.setColor(Color.blue);
          g.fillRect(20,20, 100,80);
          g.setColor(new Color(1.0f,1.0f,0.0f));
          g.drawRect(30,30, 80,60);
          g.drawString("prova",50,60);
    }
}
class MyFrame extends JFrame {
    public MyFrame(){
         super("Esempio");
         Container c = getContentPane();
         MyPanel panel = new MyPanel();
         c.add(panel);
         setSize(120,120);
    }
}
public class EsSwing15 {
    public static void main(String[] args){
        MyFrame f = new MyFrame();
        f.setVisible(true);
    }
}
 
M

Mursey

Ospite
Il tuo codice estende la paintComponent del JPanel ma la paintComponent viene chiamata dal sistema quando deve disegnare l'elemento.
 

fedi98

Nuovo Utente
121
8
ma quindi viene chiamata dal sistema e non devo essere io a chiamarla?
ci sono altre funzioni che si comportano cosi?
 
M

Mursey

Ospite
ma quindi viene chiamata dal sistema e non devo essere io a chiamarla?
ci sono altre funzioni che si comportano cosi?

Il fatto e' che tu la stai estendendo, quindi stai usando una funzione del sistema per fare anche altre cose tue.
Ce ne sono diverse ma in generale ha senso estenderle solo se ti serve veramente.
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!