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

    Visualizzazione immagini per tot secondi

    Salve a tutti ragazzi.
    Dovrei visualizzare in un jFrame una serie di immagini a tutto schermo, una per volta e per un tot di tempo.

    Potete darmi qualche suggerimento?
    OnLine il nuovo sito: www.lasfidacontinua.it

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Visualizzazione immagini per tot secondi

    Originariamente inviato da rob_santini
    Dovrei visualizzare in un jFrame una serie di immagini a tutto schermo, una per volta e per un tot di tempo.
    Ti basta che il JFrame sia "massimizzato" o vuoi avere una finestra che copra proprio tutto lo schermo senza barre/bordi/ecc..??
    A parte questo, il modo più veloce e semplice è:
    a) Carica le immagini (qui dipende ... ci sono molti modi, es. con la ImageIO). E metti i riferimenti agli Image in un array.
    b) Usi un javax.swing.Timer per temporizzare le immagini.
    c) Nel tuo JFrame metti un JLabel e ogni tot di tempo gli assegni un nuovo ImageIcon creato passando il Image i-esimo.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Ciao
    a) va bene questo?
    codice:
    import java.awt.Component;
    import java.awt.*;
    import java.awt.event.*;
    import java.net.*;
    
    public class Immagine extends Panel{
    URL URLImmagine = null;
    String fileImmagine = null;
    int posX=0;
    int posY=0;
    int flagOrigine = 0;
    
    public Immagine(String in,int x, int y) {
    super();
    fileImmagine = in;
    flagOrigine =0;
    posX=x;
    posY=y;
    this.setLayout(null);
    this.setSize(40,40);
    }
    
    public Immagine(URL in,int x, int y) {
    super();
    URLImmagine = in;
    flagOrigine =1;
    posX=x;
    posY=y;
    this.setLayout(null);
    this.setSize(40,40);
    }
    
    public void paint(Graphics g){
    if (flagOrigine ==0)
    g.drawImage(getToolkit().getImage(fileImmagine),posX,posY,this);
    else g.drawImage(getToolkit().getImage(URLImmagine),posX,posY,this);
    }
    
    public void update(Graphics g)
    {
    paint(g);
    }
    
    }
    per gli altri due punti cerco nela documentazione e ti faccio sapere.

    Grazie
    Roberto
    OnLine il nuovo sito: www.lasfidacontinua.it

  4. #4
    b) questo mi sembra interessante (trovato nella documentazione):
    codice:
    int delay = 1000; //milliseconds
      ActionListener taskPerformer = new ActionListener() {
          public void actionPerformed(ActionEvent evt) {
              //...Perform a task...
          }
      };
      new Timer(delay, taskPerformer).start();
    Un dubbio: ogni secondo viene ripetuta actionPerformer. Se io voglio che ogni secondo cambi l'immagine, come posso far cambiare il path dell'immagine? la mia idea (spartana) era quella di mettere un contatore globale e incrementare quello, e prendere il path del'immagine da un array...
    OnLine il nuovo sito: www.lasfidacontinua.it

  5. #5
    Ok, credo di aver risolto, usando un Thread.sleep(millisecondi) al posto del timer dato che ogni immagine aveva un suo tempo di pausa.
    Un'ultima domanda: usando il codice che ho postato sopra per visualizzare un'immagine, come faccio a ridimensionarla in modo automatico a seconda della dimensione della finestra?

    Grazie
    Ciao ciao
    OnLine il nuovo sito: www.lasfidacontinua.it

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.