Visualizzazione dei risultati da 1 a 6 su 6

Discussione: metodo paint()

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    456

    metodo paint()

    Ciao,
    ho difficoltà a capire l'uso del metodo paint().
    Ho letto articoli sia nel forum che in rete, ma non ho anciora chiarito i miei bubbi.

    Ne ho capito in parte il funzionamento vedendo questo esempio


    codice:
    import java.awt.*;
     public class GWindow extends Frame {
        public void paint(Graphics g) {
        g.drawLine(0,0,50,50);
        g.fillOval(5,20,300,30);
        g.setColor(Color.green);
        g.drawString("Hello",100,40);
        }
     }
    codice:
    public class ShowGWindow {
       public static void main(String[] arg) {
       GWindow w = new GWindow();
       w.setSize(350,60);
       w.setTitle("GWindow");
       w.setVisible(true);
       }
    }
    Quello che mi chiedo è, se è possibile, come chiamare il metodo paint una volta creato un oggetto Frame con

    codice:
    Frame finestra = new Frame()

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Il metodo paint() è colui che si occupa di disegnare il componente. Non dovrebbe mai essere il programmatore a richiamarlo direttamente, ma il sistema. Per dire al sistema di "forzare" una chiamata a tale metodo si deve richiamare il metodo repaint() sull'oggetto che si desidera ridisegnare.

    Se devi richiamare il metodo paint() su una finestra, è sufficiente richiamare il metodo repaint() sulla stessa:

    codice:
    GWindow gw = new GWindow();
    gw.repaint();
    (la finestra che hai creato nell'esempio postato da te, al contrario, è un Frame normale, non quello da te definito, che quindi non avrà la tua ri-definizione del metodo)


    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
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    456
    Grazie per la risposta.

    Non ho capito bene l'ultimo punto.
    Mi stai dicendo che con
    codice:
    Frame finestra = new Frame()
    creo un Frame e con
    codice:
    public class GWindow extends Frame
    creo una finestra?

    Credevo che un Frame in realtà fosse una finestra (così come la intendo da utente di windows).

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    456
    ah, forse ho capito.
    Devo per forza creare una finestra estendendo la classe Frame per poi poter fare l'override di Paint()?

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da matpirata
    ah, forse ho capito.
    Devo per forza creare una finestra estendendo la classe Frame per poi poter fare l'override di Paint()?
    Esatto. Altrimenti crei un frame (o finestra, chiamala come vuoi, è lo stesso) standard.


    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

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    456
    grazie mille

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.