Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Metodi paintComponent() e paintComponents()

    Salve, spero di scrivere nella sezione giusta dato che questa è la prima volta che lo faccio.
    Mi chiedevo quale fosse la differenza tra il metodo paintComponent(Graphics g) e paintComponents(Graphics g). Ho provato a fare una ricerca da solo ma non credo di aver afferrato bene l'argomento.
    Quello che ho capito io è che il primo quando viene chiamato il metodo repaint() cancella tutto il resto e ridisegna mentre il secondo aggiunge semplicemente al contesto grafico il nuovo disegno.

    Grazie in anticipo per le risposte

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Da quel che ho capito dalla documentazione e dal source di Container.paintComponents() direi che la differenza fra i due è concettualmente ampia:

    paintComponent() si occupa di ridisegnare il componente sul quale viene invocato.

    paintComponents() si occupa, invece, di ridisegnare tutti i componenti contenuti nel contenitore sul quale viene richiamato.

    Dovrei effettuare delle prove per verificare quanto segue, ma in sostanza la differenza dovrebbe essere questa:

    codice:
    Container c = ...
    
    // Ridisegno "c"
    c.paintComponent(g);
    
    // Ridisegno i componenti contenuti in "c", ma non c.
    c.paintComponents(g);
    Tralasciando il fatto che non si dovrebbe richiamare nessuno dei due metodi (è il sottosistema a richiamarli), la differenza dovrebbe essere quella. Ho solo il dubbio sul fatto che paintComponents() non ridisegna se stesso.

    Ad ogni modo, paintComponents() è definito solo per i Container, non per qualunque Component.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Ti ringrazio, ora mi è più chiaro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.