Java e immagini

di il
3 risposte

Java e immagini

Il programma in questione carica un'immagine e la visualizza per un tempo brevissimo , dopo il quale l'immagine viene cancellata.
Ad intervalli dell'ordine di secondi l'immagina è ancora visualizzata, sempre per decimi di secondo.
Il mio problema che il programma non aspetta che l'immagine sia visualizzata prima di passare alla fase di cancellazione della medesima.
Come posso obbligare la visualizzazione dell'immagine prima che venga cancellata?
Grazie in anticipo.

3 Risposte

  • Re: Java e immagini

    Prova a mettere tra la parte di visualizzazione e la parte di cancellazione questa chiamata

    Thread.sleep(10)

    Facendo così il Thread di esecuzione aspetterà 10 ms prima di eseguire la procedura per cancellare.
  • Re: Java e immagini

    La pausa è inserita ma penso che il processore non aspetti di avere disegnato l'immagine prima di passare alla pausa e alla successiva cancellazione.O non aspetta il tempo assegnato
    La procedura di disegno è contenuta in un thread

    Nell costruttore della classe il codice permette il caricamento delle immagini facendo aspettare il proseguimento del programma fino a fine caricamento
    MediaTracker track=new MediaTracker(this);
    Toolkit kit=Toolkit.getDefaultToolkit();
    immSimbolo=kit.getImage(\"A.jpeg\");

    try{
    track.waitForAll();

    }catch (InterruptedException e) {}

    nella procedura di disegno il codice è il seguente

    public void paintComponent(Graphics screen) {


    Graphics2D screen2D = (Graphics2D)screen;
    int d=impostaCoordinate.valoreD(); // dimensione caratteri
    if(d==0) {d=29;}

    Font tipo = new Font(\"Serif\",Font.BOLD,d);

    screen2D.setFont(tipo);
    // non disegnare niente

    screen2D.setColor(getBackground());

    screen2D.fillRect(0,0,getSize().width,getSize().height);

    if (mostra==true){ // se mostra =true allora disegna

    int x=impostaCoordinate.valoreX();
    if (x==0) x=5;

    int y=impostaCoordinate.valoreY();
    if (y==0) y=38;

    screen2D.setColor(Color.black);
    screen2D.drawString(testo,x,y);
    screen2D.drawImage(immSimbolo,12,y+35,this);


    //intervallo di tempo di apparizione
    try { Thread.sleep(valoreApparizione ); }catch (InterruptedException e) {}

    mostra=false; // se mostra = false cancella immagine

    }// if


    }// paintcomponent
  • Re: Java e immagini

    Non mi è tanto chiaro perchè ma spostando il thread.sleep dal metodo void pantComponent al void run il programma rispetta i tempi di attesa impostati
Devi accedere o registrarti per scrivere nel forum
3 risposte