Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 24
  1. #11
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    14
    Ho provato...ora attende 5 sec. e poi mi fà vedere solo l'ultima immagine che metto in imgCorr, come se facesse tutto in inizializzazione.

    [CODE*]
    public class immagine extends Applet {
    Image imgCorr;

    public void init() {
    imgCorr=getImage(getDocumentBase(),"images/webcam.jpg");
    repaint();
    }

    public void start() {
    try {
    Thread.sleep(5000);
    } catch(InterruptedException e) {
    System.out.println(e);
    }
    imgCorr=getImage(getDocumentBase(),"images/altraImmagine.jpg");
    repaint();
    }

    public void paint(Graphics g) {
    if (imgCorr != null) {
    g.drawImage(imgCorr,0,0,this);
    }
    }
    }
    [/CODE*]

  2. #12
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Eh già... ho provato anch'io e ho notato che le applet hanno un comportamento leggermente diverso da quello dei Thread. Per questo bisogna utilizzare i thread anche nelle Applet quando si ha bisogno di questo tipo di applicazioni.
    Ecco la tua classe funzionante:
    codice:
    import java.applet.*;
    import java.awt.*;
    
    public class Immagine extends Applet {
       private class Timer extends Thread {
    
          private Immagine img;
          private Image image;
    
          public Timer(Immagine img) { this.img = img; }
    
          public void run() {
             img.repaint();
             try { 
                Thread.sleep(5000); 
             } catch(InterruptedException e) { 
                System.out.println(e); 
             } 
             image = getImage(getDocumentBase(),"altraImmagine.jpg"); 
             img.settaImg(image);
             img.repaint(); 
          }
       } 
       Image imgCorr;
       Timer t;
    
       public void init() { 
          imgCorr=getImage(getDocumentBase(),"webcam.jpg"); 
          t = new Timer(this);
          repaint(); 
       } 
    
       public void start() { 
          repaint();
          t.start();
       } 
    
       public void settaImg(Image imgCorr) { this.imgCorr = imgCorr; }
    
       public void paint(Graphics g) { 
          if (imgCorr != null) { 
             g.drawImage(imgCorr,0,0,this); 
          } 
       } 
    }
    Se hai bisogno di spiegazioni opsta pure, comunque trovi tutta la documentazione riguardante i Thread qui


    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. #13
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    14
    Beh ti devo ringraziare LeleFT, ho imparato un bel po' di cose. Ora mi devo studiare questi Thread.

    Provando la classe mi viene un dubbio che vorrei anticiparti: come avrai capito il mio scopo finale è quello di poter aggiornare un' immagine che per esempio proviene da webcam. Se le immagini vengono salvate con lo stesso nome la nostra classe le carica comunque ?
    O meglio se eseguo 2 o più volte le istruzioni

    [code*]
    image = getImage(getDocumentBase(),"images/webcam.jpg");
    img.settaImg(image);
    img.repaint();
    [/code*]

    cosa succede ?
    Ho paura che l'immagine rimanga sempre la prima, ma spero di essermi sbagliato !

  4. #14
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Infatti... non credo che le immagini rimangano le stesse, in quanto l'istruzione
    codice:
    img = getImage( getDocumentBase(), "..." );
    ricrea un nuovo oggetto Image che andrà a sostituire quello precedente.
    Per cui, se il file cambia, cambierà anche l'immagine visualizzata.

    PS: I tag CODE che hai usato vanno scritti senza l'asterisco, altrimenti noti anche tu che il risultato non cambia


    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

  5. #15
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    14
    Adesso ho provato a mettere tutto sotto un ciclo while lasciando come immagine sempre la stessa, e non mi viene aggiornata sebbene webcam.jpg cambi sempre.

    codice:
          public void run() {
           while (true) {
             img.repaint();
             try { 
                Thread.sleep(3000); 
             } catch(InterruptedException e) { 
                System.out.println(e); 
             } 
             image = getImage(getDocumentBase(),"images/webcam.jpg"); 
             img.settaImg(image);
             img.repaint(); 
           }
          }
    ps: come si fa una parola in grassetto ?

  6. #16
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Il problema che non cambia l'immagine ora come ora non saprei come ovviarlo, se non con arzigogoli strani...

    Per mettere una scritta in grassetto devi inserire una Label e settare un nuovo oggetto Font, in questo modo:
    codice:
    Label lbl = new Label("Scritta");
    lbl.setFont( lbl.getFont().derive(Font.BOLD) );
    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. #17
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    14
    Scusami non ho specificato bene, anzi non ho specificato affatto (SONO FUSO ! VVoVe, intendevo una parola in grassetto qui nel forum.
    Adesso provo a pistolare per quell'immagine...

  8. #18
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Ah... per mettere una parte di testo in grassetto, basta che la selezioni e che premi sul pulsante "B" in alto, fra i pulsanti...
    ... oppure la scrivi fra i tag [B*] e [/B*] (sempre senza gli asterischi).


    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

  9. #19
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    14
    Io non so + che pesci prendere, lui ad una successiva getimage dello stesso file non mi ricarica l'immagine, non è possibile !!!
    Adesso ci dormo sopra !!!



  10. #20
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    14
    Qualcuno può spiegarmi il perchè ?


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