Visualizzazione dei risultati da 1 a 10 su 10

Discussione: [Java] Repaint x draw

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    420

    [java] repaint x draw

    qualcuno mi saprebbe dire come si faccia a invocare il repaint se io mi creo una funzione public void draw(Graphics g){bla bla bla} e poi un metodo di questo tipo:
    public void paint(Graphics g) {

    this.draw(g);
    }

    ma mi dice cannot find symbol se scrivo repaint();

    qualcuno ha idea del perchè?


    ps non è un applet e non sto usando neppure jframe e jpanel
    the sALIEN

  2. #2
    prova a fare

    codice:
    super.repaint();
    se non implementi il metodo repaint() oltre al paint() nella tua classe non puoi usarlo senza dirgli da dove prenderlo, con il super richiami il metodo repaint() "originale" che sta nella superclasse.

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    420
    prutroppo non funge

    forse la superclasse non ha un metodo repaint, x questo?
    the sALIEN

  4. #4
    prova a dare un'occhiata alla documentazione! :master:
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    420
    non c'è scritto nulla (o quasi) perchè è una classe creata da una persona e non fa parte della libreria standard di java.

    In pratica ora ho creato un thread di questo tipo:
    codice:
     public void run()
    
        {
    
            try {
    
                init();
    
                   gameLoop();
    
            }
    
            finally {
    
                screen.restoreScreen();
    
            }
    
        }
    e inoltre ho scritto anche questo:
    codice:
      public void gameLoop()
    
        {
    
            long startTime = System.currentTimeMillis();
    
            long currTime = startTime;
       
                   
    
                             
    
           
    while (isRunning)
    
            {
    
                long elapsedTime = System.currentTimeMillis() - currTime;
    
                currTime += elapsedTime;
    
                                         
    
                // update animation
    
                anim.update(elapsedTime);
    
                                         
    
                // disegna e aggiorna lo schermo
    
                Graphics2D g = screen.getGraphics();
    
                draw(g);
    
                g.dispose();
    
                screen.update();
    
                                         
    
                // aspetta senza far nulla
    
                try {
    
                    Thread.sleep(20);
    
                }
    
                catch (InterruptedException ex) { }
    
            }
    
                             
    
        }

    in pratica in questo modo si dovrebbe ridisegnare l'immagine ogni tot secondi ed otterrei il refresh?
    solo che non fa lo stesso
    the sALIEN

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Però non si sa che tipo di applicazione tu stia facendo... in quale classe tu stia lavorando.

    repaint() è un metodo di tutte le classi che estendono Component, quindi dovrai richiamarla su una di queste classi.
    Noto che il Graphics su cui lavori lo ottieni da un oggetto chiamato screen... prova a richiamare screen.repaint();


    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

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    420
    ora provo a fare quel che mi hai suggerito..
    the sALIEN

  8. #8
    Risolto come volevi il problema? :master:
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    420
    l ho risolto in un altro modo.. senza usare il repaint().. facendo richiamare solo la funzione draw
    the sALIEN

  10. #10
    Non sarà il modo ottimale ma se hai ottenuto quello che volevi è già qualcosa...

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

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 © 2024 vBulletin Solutions, Inc. All rights reserved.