La multimedialità: le immagini, le animazioni e i suoni

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "La multimedialità: le immagini, le animazioni e i suoni"

Transcript

1 CAPITOLO 8 La multimedialità: le immagini, le animazioni e i suoni Obiettivi Imparare a visualizzare le immagini Creare animazioni da sequenze di immagini Creare mappe di immagini Imparare a riprodurre, fermare e riprodurre continuamente suoni usando un oggetto AudioClip 8.1 Introduzione Con l evoluzione dell informatica, i computer hanno smesso di essere degli strumenti utili soltanto a eseguire velocemente calcoli matematici, e sono diventati strumenti per la manipolazione dei dati e delle informazioni. Una delle caratteristiche più interessanti di Java è sicuramente la multimedialità, ovvero la capacità di usare suoni, immagini, grafica e video nelle applicazioni. La programmazione multimediale offre molte sfide nuove. I nuovi computer vengono ormai venduti già provvisti di unità CD-ROM o DVD, schede audio e speciali funzionalità video. Sempre più utenti, poi, vogliono avere la possibilità di realizzare grafica tridimensionale e ad alta risoluzione. Nei prossimi dieci anni, lo sviluppo nella grafica tridimensionale renderà possibili nuove applicazioni: immaginate di avere una televisione tridimensionale nella vostra casa, in cui seguire gli eventi sportivi e gli spettacoli come se avvenissero nel vostro salotto! Gli studenti di medicina potranno vedere operazioni che si stanno svolgendo a migliaia di chilometri di distanza come se avvenissero nella stessa stanza. Le persone potranno imparare a guidare usando simulatori di automobile estremamente realistici prima ancora di salire in auto. Le possibilità sono eccitanti e potenzialmente senza fine. La multimedialità richiede ai computer un enorme quantità di potenza. Fino a poco tempo fa, non erano disponibili dei computer economici con la potenza necessaria. I processori veloci ora disponibili, come SPARC Ultra di Sun Microsystems, Pentium e Itanium di Intel, Alpha di Hewlett-Packard, e i processori di MIPS/Silicon Graphics (per citarne alcuni) rendono possibile la multimedialità. A trarre beneficio da questa rivoluzione multimediale saranno principalmente l industria informatica e il mondo delle comunicazioni, in quanto gli utenti saranno disposti ad acquistare processori più veloci, memorie e ampiezze di banda più grandi per le comunicazioni, tutte cose necessarie per poter supportare le applicazioni

2 438 CAPITOLO 8 multimediali. Paradossalmente, poi, il costo di tutto ciò non sarà eccessivamente elevato, in quanto la competizione sarà altissima e, quindi, i prezzi tenderanno a scendere sempre più. Per creare applicazioni multimediali efficaci, però, sono necessari linguaggi di programmazione che facilitino la creazione di contenuti multimediali. La maggior parte dei linguaggi attualmente esistenti, infatti, non possiede capacità multimediali di tipo nativo. Al contrario di questi linguaggi, Java offre funzionalità multimediali complete, che permettono ai programmatori di sviluppare da subito applicazioni multimediali estremamente interessanti e potenti. In questo capitolo, verranno presentati vari esempi delle funzionalità multimediali più importanti per la realizzazione di applicazioni efficaci, tra cui: come manipolare le immagini come creare animazioni fluide come riprodurre suoni con l interfaccia AudioClip come creare mappe di immagini in grado di sentire quando il puntatore del mouse si trova sopra di loro, anche senza un clic da parte dell utente. Gli esercizi alla fine del capitolo proporranno decine di progetti interessanti, che scateneranno la vostra creatività. 8.2 Caricare, visualizzare e scalare immagini Le capacità multimediali di Java consentono di gestire grafica, immagini, suoni e video. Iniziamo la nostra trattazione con le immagini. L applet della figura 8.1 mostra il caricamento di un oggetto Image (package java.awt) e di un oggetto ImageIcon (package javax.swing). L applet visualizza l oggetto Image nella sua dimensione originale e poi ingrandita, usando due versioni del metodo drawimage della classe Graphics. L applet disegna inoltre l oggetto ImageIcon usando il suo metodo painticon. La classe ImageIcon è più semplice da usare della classe Image, perché il suo costruttore può ricevere argomenti di formati diversi, tra cui un array di byte contente i byte dell immagine, un oggetto Image già caricato in memoria e una stringa o un URL che rappresenta la posizione dell immagine. 1 // Fig. 8.1: LoadImageAndScale.java 2 // Carica un immagine e la visualizza nella sua dimensione originale e 3 // raddoppiata. Carica e visualizza la stessa immagine come un ImageIcon 4 import java.applet.applet; 5 import java.awt.*; 6 import javax.swing.*; 7 8 public class LoadImageAndScale extends JApplet { 9 private Image logo1; 10 private ImageIcon logo2; // carica immagine quando l applet viene caricata 13 public void init() Figura 8.1 Caricare e visualizzare un immagine in un applet (continua)

3 LA MULTIMEDIALITÀ: LE IMMAGINI, LE ANIMAZIONI E I SUONI { 15 logo1 = getimage( getdocumentbase(), logo.gif ); 16 logo2 = new ImageIcon( logo.gif ); 17 } // visualizza immagine 20 public void paint( Graphics g ) 21 { 22 g.drawimage( logo1, 0, 0, this ); // disegna immagine originale // disegna immagine che riempie larghezza e altezza meno 120 pixel 25 g.drawimage( logo1, 0, 120, getwidth(), getheight() 120, this ); // disegna icona usando il suo metodo painticon 28 logo2.painticon( this, g, 180, 0 ); 29 } } // fine classe LoadImageAndScale Figura 8.1 Caricare e visualizzare un immagine in un applet Le righe 9 e 10 dichiarano rispettivamente un riferimento Image e un riferimento ImageIcon. La classe Image è una classe abstract; quindi, non è possibile creare direttamente un oggetto della classe Image. È necessario invece che l applet chiami un metodo che fa in modo che il contenitore dell applet carichi e ritorni l oggetto Image da usare nel programma. La classe Applet (la superclasse di JApplet) fornisce il metodo getimage (riga 15 del metodo init) per caricare un Image nell applet. Questa versione di getimage prende due argomenti: la posizione e il nome del file dell immagine. Nel primo argomento, il metodo getdocumentbase della classe Applet viene utilizzato per ritornare un URL che rappresenta la posizione dell immagine in Internet (o sul computer, se è da qui che proviene l applet). In questo caso, si parte

4 440 CAPITOLO 8 dal presupposto che l immagine da caricare si trovi nella stessa directory del file HTML che ha invocato l applet. Il metodo getdocumentbase ritorna la posizione in Internet del file HTML come un oggetto della classe URL. Il secondo argomento specifica un nome di file per l immagine. Java supporta attualmente parecchi formati per le immagini, tra cui Graphics Interchange Format (GIF), Joint Photographic Experts Group (JPEG) e Portable Network Graphics (PNG). I nomi di file di ognuno di questi tipi terminano rispettivamente con l estensione.gif,.jpg (o.jpeg) e.png. Obiettivo portabilità 8.1 La classe Image è una classe abstract, quindi gli oggetti Image non possono essere creati direttamente. Per ottenere l indipendenza dalla piattaforma, l implementazione Java su ognuna delle piattaforme fornisce la propria sottoclasse di Image per memorizzare le informazioni relative alle immagini. La riga 15 inizia a caricare l immagine dal computer locale (o a scaricare l immagine da Internet). Quando l immagine viene richiesta dal programma, viene caricata in un thread separato di esecuzione. Questo permette al programma di continuare la propria esecuzione mentre l immagine viene caricata. [Nota: Se il file richiesto non è disponibile, il metodo getimage non segnala un errore.] La classe ImageIcon non è una classe abstract, quindi è possibile creare un oggetto ImageIcon. La riga 16 del metodo init dell applet crea un oggetto ImageIcon, che carica la stessa immagine logo.gif. La classe ImageIcon fornisce vari costruttori che permettono al programma di inizializzare un oggetto ImageIcon con un immagine proveniente dal computer locale, oppure con un immagine conservata in Internet. Il metodo paint dell applet (righe 20-29) visualizza l immagine. La riga 22 usa il metodo drawimage di Graphics per visualizzare un oggetto Image. Il metodo drawimage riceve quattro argomenti. Il primo argomento è un riferimento all oggetto Image da visualizzare (logo1). Il secondo e il terzo argomento sono le coordinate x e y in cui l immagine deve essere visualizzata all interno dell applet (le coordinate corrispondono all angolo superiore sinistro dell immagine). L ultimo argomento è un riferimento a un oggetto ImageObserver. Questo argomento è importante se si visualizzano immagini di grandi dimensioni, che richiedono molto tempo per essere scaricate da Internet. È possibile dunque che il programma esegua il codice che visualizza l immagine prima che questa sia stata scaricata completamente. L oggetto ImageObserver viene avvisato di aggiornare l immagine visualizzata mano a mano che il resto dell immagine viene scaricato. Normalmente, l ImageObserver è l oggetto su cui viene visualizzata l immagine. Un ImageObserver può essere un qualsiasi oggetto che implementa l interfaccia ImageObserver, per esempio la classe Component (una delle superclassi indirette della classe Applet); tutti i Component, quindi (incluso il nostro applet), possono essere degli ImageObserver. Quando eseguite questo applet, osservate attentamente la visualizzazione delle varie parti dell immagine, via via che questa viene caricata. [Nota: Con i computer più veloci, questo effetto potrebbe non essere visibile.] La riga 25 usa un altra versione del metodo drawimage di Graphics per mostrare una versione scalata dell immagine. Il quarto e quinto argomento specificano la larghezza e l altezza dell immagine ai fini della visualizzazione. L immagine viene automaticamente scalata in base alla larghezza e all altezza specificate. In questo esempio, il quarto argomento indica che la larghezza dell immagine scalata deve essere pari alla larghezza dell applet, mentre il

5 LA MULTIMEDIALITÀ: LE IMMAGINI, LE ANIMAZIONI E I SUONI 441 quinto argomento indica che l altezza deve essere l altezza dell applet meno 120 pixel. La larghezza e l altezza dell applet sono determinate con i metodi getwidth e getheight (ereditati dalla classe Component). La riga 28 usa il metodo painticon di ImageIcon per visualizzare l immagine. Il metodo richiede quattro argomenti: un riferimento al Component sul quale l immagine verrà visualizzata, un riferimento all oggetto Graphics che verrà utilizzato per rappresentare l immagine sullo schermo, la coordinata x dell angolo superiore sinistro dell immagine, e la coordinata y dell angolo superiore sinistro dell immagine. Se confrontate i due modi in cui abbiamo caricato e visualizzato le immagini in questo esempio, vedrete che l impiego di ImageIcon è più semplice. È possibile creare oggetti della classe ImageIcon direttamente, senza alcun bisogno di usare un riferimento ImageObserver durante la visualizzazione dell immagine. È questo il motivo per cui utilizzeremo la classe ImageIcon per tutto il resto del capitolo. [Nota: Il metodo painticon della classe ImageIcon non permette di scalare un immagine. Questa classe, però, fornisce il metodo getimage, che ritorna un riferimento Image da utilizzare con il metodo drawimage di Graphics per visualizzare un immagine scalata.] 8.3 Animare una sequenza di immagini Il prossimo esempio mostra l animazione di una sequenza di immagini che sono conservate all interno di un array di ImageIcon. L animazione presentata nella figura 8.2 è stata progettata come una sottoclasse di JPanel (chiamata LogoAnimator), che può essere attaccata a una finestra di applicazione, oppure a un JApplet. La classe LogoAnimator definisce inoltre un metodo main (righe 85-99) per eseguire l animazione sotto forma di applicazione. Il metodo main definisce un istanza della classe JFrame, aggiungendo un oggetto LogoAnimator al JFrame, per visualizzare l animazione. 1 // Fig. 8.2: LogoAnimator.java 2 // Animazione di una sequenza di immagini 3 import java.awt.*; 4 import java.awt.event.*; 5 import javax.swing.*; 6 7 public class LogoAnimator extends JPanel implements ActionListener { 8 9 private final static String IMAGE_NAME = deitel ; // nome base immagine 10 protected ImageIcon images[]; // array di immagini private int totalimages = 30; // numero di immagini 13 private int currentimage = 0; // indice corrente di immagine 14 private int animationdelay = 50; // ritardo in millisecondi 15 private int width; // larghezza dell immagine 16 private int height; // altezza dell immagine private Timer animationtimer; // Timer che controlla l animazione 19 Figura 8.2 L animazione di una sequenza di immagini (continua)

6 442 CAPITOLO 8 20 // inizializza LogoAnimator caricando le immagini 21 public LogoAnimator() 22 { 23 images = new ImageIcon[ totalimages ]; // carica immagini 26 for ( int count = 0; count < images.length; ++count ) 27 images[ count ] = new ImageIcon( getclass().getresource( 28 images/ + IMAGE_NAME + count +.gif ) ); // questo esempio assume che le immagini abbiano le stesse dimensioni 31 width = images[ 0 ].geticonwidth(); // ottiene larghezza icona 32 height = images[ 0 ].geticonheight(); // ottiene altezza icona 33 } // visualizza immagine corrente 36 public void paintcomponent( Graphics g ) 37 { 38 super.paintcomponent( g ); images[ currentimage ].painticon( this, g, 0, 0 ); // si sposta alla prossima immagine solo se il timer è partito 43 if ( animationtimer.isrunning() ) 44 currentimage = ( currentimage + 1 ) % totalimages; 45 } // risponde a eventi del timer 48 public void actionperformed( ActionEvent actionevent ) 49 { 50 repaint(); // ridisegna animator 51 } // fa partire o ripartire l animazione 54 public void startanimation() 55 { 56 if ( animationtimer == null ) { 57 currentimage = 0; 58 animationtimer = new Timer( animationdelay, this ); 59 animationtimer.start(); 60 } 61 else // continua dall ultima immagine visualizzata 62 if (! animationtimer.isrunning() ) 63 animationtimer.restart(); 64 } // ferma timer dell animazione 67 public void stopanimation() Figura 8.2 L animazione di una sequenza di immagini (continua)

7 LA MULTIMEDIALITÀ: LE IMMAGINI, LE ANIMAZIONI E I SUONI { 69 animationtimer.stop(); 70 } // ritorna la dimensione minima di animation 73 public Dimension getminimumsize() 74 { 75 return getpreferredsize(); 76 } // ritorna la dimensione preferenziale di animation 79 public Dimension getpreferredsize() 80 { 81 return new Dimension( width, height ); 82 } // esegue animation in un JFrame 85 public static void main( String args[] ) 86 { 87 LogoAnimator animation = new LogoAnimator(); // crea LogoAnimator JFrame window = new JFrame( Animator test ); // imposta finestra 90 window.setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); Container container = window.getcontentpane(); 93 container.add( animation ); window.pack(); // rende la finestra abbastanza larga per la sua GUI 96 window.setvisible( true ); // visualizza finestra 97 animation.startanimation(); // inizia animazione } // fine metodo main } // fine classe LogoAnimator Figura 8.2 L animazione di una sequenza di immagini La classe LogoAnimator mantiene un array di ImageIcon che vengono caricate nel costruttore (righe 21-33). Le righe creano ogni oggetto ImageIcon e caricano le 30 immagini dell animazione. L argomento del costruttore usa la concatenazione delle stringhe per assemblare il nome del file dai vari pezzi images/, IMAGE_NAME, count e.gif. Ognuna delle immagini dell animazione è un file chiamato deitel#.gif, dove # è un valore 0-29 specificato dalla variabile di controllo del ciclo count. Le righe determinano la larghezza e

8 444 CAPITOLO 8 l altezza dell animazione dalle dimensioni della prima immagine nell array images. Assumeremo che tutte le immagini abbiano la stessa larghezza e altezza. Dopo che il costruttore di LogoAnimator ha caricato le immagini, il metodo main imposta la finestra in cui apparirà l animazione (righe 89-96) e la riga 97 chiama il metodo startanimation della classe LogoAnimator (definito alle righe 54-64) per dare inizio all animazione. L animazione è guidata da un istanza della classe Timer (package javax.swing). Un oggetto della classe Timer genera degli ActionEvent ad un intervallo di tempo fissato in millisecondi (normalmente specificato come argomento del costruttore di Timer) e notifica dell evento tutti i suoi ActionListener registrati. Le righe determinano se il riferimento animationtimer di tipo Timer è null. In caso affermativo, currentimage è impostato su 0 (riga 57), per indicare che l animazione dovrebbe iniziare con l immagine che si trova nel primo elemento dell array images. La riga 58 assegna un nuovo oggetto Timer ad animationtimer. Il costruttore di Timer riceve due argomenti: l attesa in millisecondi (in questo esempio, animationdelay è 50, come specificato dalla riga 14) e l ActionListener che risponderà agli ActionEvent di Timer. La classe LogoAnimator implementa ActionListener, quindi la riga 58 specifica this come ascoltatore. La riga 59 avvia l oggetto Timer; una volta avviato, animationtimer genererà un ActionEvent ogni 50 millisecondi. Le righe permettono al programma di interrompere e riavviare l animazione. Per ottimizzare un animazione all interno di un applet, per esempio, questa dovrebbe essere interrotta quando l utente passa a un altra pagina Web. Se l utente ritorna alla pagina Web contenente l animazione, il metodo startanimation può essere chiamato per riavviarla. La condizione if alla riga 62 usa il metodo isrunning di Timer per determinare se Timer è attualmente in esecuzione (ovvero, se sta generando degli eventi). Se non è in esecuzione, la riga 63 chiama il metodo restart di Timer per indicare che Timer dovrebbe ricominciare a generare eventi. In risposta a ognuno degli eventi di Timer di questo esempio, il programma chiama il metodo actionperformed (righe 48-51). La riga 50 chiama il metodo repaint di LogoAnimator che programma una chiamata al metodo paintcomponent di LogoAnimator (righe 36-45). Ricordate che qualsiasi sottoclasse di JComponent che esegue dei disegni deve farlo nel suo metodo paintcomponent. Come visto nel capitolo 3, la prima istruzione di qualsiasi metodo paintcomponent dovrebbe essere una chiamata al metodo paintcomponent della superclasse, per assicurarsi che i componenti Swing siano visualizzati correttamente. La riga 40 disegna l ImageIcon dell elemento currentimage all interno dell array. Le righe determinano se animationtimer è in esecuzione e, in caso affermativo, si preparano a visualizzare l immagine successiva aumentando di 1 currentimage. Notate il calcolo del resto per impostare il valore di currentimage su 0 quando si supera il valore 29 (l ultimo elemento dell array). L istruzione if ci assicura che, se paintcomponent viene chiamato quando Timer viene fermato, verrà visualizzata la stessa immagine. Questo potrebbe essere utile in una GUI che consente all utente di far partire e fermare l animazione. Per esempio, se l animazione viene fermata e l utente la copre con un altra finestra e poi la scopre nuovamente, verrà chiamato il metodo paintcomponent. In questo caso, non vogliamo che l animazione mostri l immagine successiva. Il metodo stopanimation (righe 67-70) interrompe l animazione chiamando il metodo stop della classe Timer per indicare che il Timer dovrebbe interrompere la generazione di eventi. Questo fatto, a sua volta, impedisce ad actionperformed di chiamare repaint per avviare la visualizzazione dell immagine successiva all interno dell array.

9 LA MULTIMEDIALITÀ: LE IMMAGINI, LE ANIMAZIONI E I SUONI 445 Ingegneria del software 8.1 Quando si crea un animazione da utilizzare all interno di un applet, è necessario fornire un meccanismo che la disattivi quando l utente passa a una pagina Web diversa dalla pagina in cui si trova l animazione. I metodi getminimumsize (righe 73-76) e getpreferredsize (righe 79-82) sovrascrivono i corrispondenti metodi ereditati dalla classe Component per aiutare il layout manager a determinare la corretta dimensione di un LogoAnimator all interno di un layout. In questo esempio, le immagini sono larghe 160 pixel e alte 80 pixel, quindi il metodo getpreferredsize ritorna un oggetto Dimension contenente i numeri 160 e 80. Il metodo getminimumsize chiama semplicemente getpreferredsize (una normale abitudine di programmazione) per indicare che la dimensione minima e quella preferenziale sono uguali. Alcuni layout manager ignorano le dimensioni specificate da questi metodi. Per esempio, le regioni NORTH e SOUTH di BorderLayout usano solo l altezza preferenziale di un componente. 8.4 Mappe di immagini Una tecnica molto comune per creare pagine Web interattive è il ricorso alle mappe di immagini. Una mappa di immagini è un immagine che possiede delle aree attive su cui l utente può fare clic al fine di eseguire un attività, come il caricamento di una diversa pagina Web all interno del browser. Quando l utente posiziona il puntatore del mouse su una di queste aree, appare normalmente un messaggio descrittivo nella barra di stato del browser o in un tool tip. La figura 8.3 carica un immagine contenente varie icone utilizzate all interno del libro. Il programma permette all utente di posizionare il puntatore del mouse su di un icona, visualizzando un messaggio descrittivo relativo a questa icona. Il gestore di eventi mousemoved (righe 37-41) prende le coordinate del mouse e le passa al metodo translatelocation (righe 59-70). Il metodo translatelocation analizza le coordinate per determinare l icona su cui è stato posizionato il mouse quando è stato chiamato il metodo mousemoved; il metodo ritorna quindi un messaggio che indica ciò che l icona rappresenta; questo messaggio viene visualizzato nella barra di stato del contenitore dell applet. Facendo clic all interno dell applet della figura 8.3, non viene eseguita alcuna azione. Nel capitolo 7, abbiamo parlato delle tecniche necessarie per caricare un altra pagina Web all interno di un browser usando oggetti URL e l interfaccia AppletContext. Usando queste tecniche, è possibile modificare quest applet affinché ogni icona sia associata a un URL diverso che il browser può visualizzare quando l utente fa clic sull icona. 1 // Fig. 8.3: ImageMap.java 2 // Dimostrazione di una mappa di immagini 3 import java.awt.*; 4 import java.awt.event.*; 5 import javax.swing.*; 6 7 public class ImageMap extends JApplet { 8 private ImageIcon mapimage; 9 Figura 8.3 Una mappa di immagini (continua)

10 446 CAPITOLO 8 10 private static final String captions[] = { Common Programming Error, 11 Good Programming Practice, Graphical User Interface Tip, 12 Performance Tip, Portability Tip, 13 Software Engineering Observation, Error-Prevention Tip }; // imposta ascoltatori del mouse 16 public void init() 17 { 18 addmouselistener( new MouseAdapter() { // classe interna anonima // indica quando il puntatore del mouse esce dall area dell applet 23 public void mouseexited( MouseEvent event ) 24 { 25 showstatus( Pointer outside applet ); 26 } } // fine classe interna anonima ); // fine chiamata a addmouselistener addmousemotionlistener( new MouseMotionAdapter() { // classe interna anonima // determina l icona su cui il mouse è posizionato 37 public void mousemoved( MouseEvent event ) 38 { 39 showstatus( translatelocation( 40 event.getx(), event.gety() ) ); 41 } } // fine classe interna anonima ); // fine chiamata a addmousemotionlistener mapimage = new ImageIcon( icons.png ); // ottiene immagine } // fine metodo init // visualizza mapimage 52 public void paint( Graphics g ) 53 { 54 super.paint( g ); 55 mapimage.painticon( this, g, 0, 0 ); 56 } Figura 8.3 Una mappa di immagini (continua)

11 LA MULTIMEDIALITÀ: LE IMMAGINI, LE ANIMAZIONI E I SUONI // ritorna testo descrittivo associato con l icona 59 public String translatelocation( int x, int y ) 60 { 61 // se le coordinate sono fuori dall immagine, ritorna immediatamente 62 if ( x >= mapimage.geticonwidth() y >= mapimage.geticonheight() ) 63 return ; // determina il numero dell icona (0-6) 66 int iconwidth = mapimage.geticonwidth() / 7; 67 int iconnumber = x / iconwidth; return captions[ iconnumber ]; // ritorna testo appropriato 70 } } // fine classe ImageMap Figura 8.3 Una mappa di immagini (continua)

12 448 CAPITOLO 8 Figura 8.3 Una mappa di immagini 8.5 Caricare e riprodurre i clip audio I programmi Java sono in grado di utilizzare e riprodurre i clip audio, che Internet offre in grande abbondanza. Per poter riprodurre questi clip audio, il sistema deve disporre dell apposito hardware (altoparlanti e una scheda audio). Java offre diversi meccanismi per la riproduzione dei suoni all interno di un applet. I due più semplici sono il metodo play di Applet e il metodo play dell interfaccia AudioClip. Funzionalità aggiuntive sono disponibili nelle librerie Java Media Framework e Java Sound. Se volete riprodurre un suono una volta all interno di un programma, il metodo play di Applet permette di caricare questo suono e di riprodurlo una sola volta, dopodiché il suono viene contrassegnato per la garbage collection. Il metodo play di Applet ha due forme: public void play( URL location, String soundfilename ); public void play( URL soundurl ); La prima versione carica il clip audio memorizzato nel file soundfilename, alla posizione location, e ne riproduce il suono. Il primo argomento è normalmente una chiamata al

13 LA MULTIMEDIALITÀ: LE IMMAGINI, LE ANIMAZIONI E I SUONI 449 metodo getdocumentbase o getcodebase dell applet. Il metodo getdocumentbase ritorna la posizione del file HTML che ha caricato l applet (se l applet è in un package, il metodo ritorna la posizione del package o del file JAR che contiene il package). Il metodo getcodebase indica dove si trova il file.class dell applet. La seconda versione del metodo play, invece, prende un URL che contiene la posizione e il nome del file del clip audio. L istruzione play( getdocumentbase(), hi.au ); carica il clip audio memorizzato nel file hi.au, riproducendolo una volta. Il motore sonoro che riproduce i clip audio supporta vari formati di file, tra cui Sun Audio (estensione.au), Windows Wave (.wav), Macintosh AIFF (.aif o.aiff), Musical Instrument Digital Interface (MIDI) (.mid o.rmi). Le librerie Java Media Framework (JMF) e Java Sound supportano anche altri formati. Il programma della figura 8.4 mostra il caricamento e la riproduzione di un AudioClip (package java.applet). Questa tecnica è più flessibile rispetto al metodo play di Applet, in quanto permette di memorizzare il clip audio all interno del programma, così da poterlo riutilizzare più volte durante l esecuzione. Il metodo getaudioclip Applet ha due forme, che prendono gli stessi argomenti del metodo play visto poco fa. Il metodo getaudioclip ritorna un riferimento a un AudioClip; una volta caricato un AudioClip, è possibile invocare tre metodi: play, loop e stop. Il metodo play riproduce il clip una volta; il metodo loop riproduce il clip in continuazione; il metodo stop interrompe la riproduzione di un clip. Nel programma, ognuno di questi metodi è associato a un pulsante dell applet. 1 // Fig. 8.4: LoadAudioAndPlay.java 2 // Carica un clip audio e lo riproduce 3 4 import java.applet.*; 5 import java.awt.*; 6 import java.awt.event.*; 7 import javax.swing.*; 8 9 public class LoadAudioAndPlay extends JApplet { 10 private AudioClip sound1, sound2, currentsound; 11 private JButton playsound, loopsound, stopsound; 12 private JComboBox choosesound; // carica il suono quando l applet inizia l esecuzione 15 public void init() 16 { 17 Container container = getcontentpane(); 18 container.setlayout( new FlowLayout() ); String choices[] = { Welcome, Hi }; 21 choosesound = new JComboBox( choices ); choosesound.additemlistener( new ItemListener() { Figura 8.4 Caricare e riprodurre un AudioClip (continua)

14 450 CAPITOLO // ferma il suono e imposta il suono sulla selezione dell utente 28 public void itemstatechanged( ItemEvent e ) 29 { 30 currentsound.stop(); currentsound = 33 choosesound.getselectedindex() == 0? sound1 : sound2; 34 } } // fine classe interna anonima ); // fine chiamata a additemlistener container.add( choosesound ); // imposta i pulsanti e il loro gestore degli eventi 43 ButtonHandler handler = new ButtonHandler(); playsound = new JButton( Play ); 46 playsound.addactionlistener( handler ); 47 container.add( playsound ); loopsound = new JButton( Loop ); 50 loopsound.addactionlistener( handler ); 51 container.add( loopsound ); stopsound = new JButton( Stop ); 54 stopsound.addactionlistener( handler ); 55 container.add( stopsound ); // carica suoni e imposta currentsound 58 sound1 = getaudioclip( getdocumentbase(), welcome.wav ); 59 sound2 = getaudioclip( getdocumentbase(), hi.au ); 60 currentsound = sound1; } // fine metodo init // ferma il suono quando l utente carica un altra pagina Web 65 public void stop() 66 { 67 currentsound.stop(); 68 } // classe interna privata per gestire eventi dei pulsanti 71 private class ButtonHandler implements ActionListener { // elabora eventi dei pulsanti play, loop e stop Figura 8.4 Caricare e riprodurre un AudioClip (continua)

15 LA MULTIMEDIALITÀ: LE IMMAGINI, LE ANIMAZIONI E I SUONI public void actionperformed( ActionEvent actionevent ) 75 { 76 if ( actionevent.getsource() == playsound ) 77 currentsound.play(); else if ( actionevent.getsource() == loopsound ) 80 currentsound.loop(); else if ( actionevent.getsource() == stopsound ) 83 currentsound.stop(); 84 } } // fine classe ButtonHandler } // fine classe LoadAudioAndPlay Figura 8.4 Caricare e riprodurre un AudioClip Le righe del metodo init dell applet usano getaudioclip per caricare due file audio: un file Windows Wave (welcome.wav) e un file Sun Audio (hi.au). L utente può selezionare quale clip audio riprodurre dal JComboBox choosesound. Notate come il metodo stop dell applet venga sovrascritto alle righe Quando l utente cambia pagina Web, viene chiamato il metodo stop; questo garantisce che la riproduzione del clip audio venga interrotta, altrimenti continuerebbe in sottofondo, anche se l applet non viene visualizzato nel browser. Questo potrebbe non essere un problema, ma potrebbe disturbare l utente. L esperienza dell utente 8.1 Durante la riproduzione dei clip audio in un applet o in un applicazione, fornite sempre all utente un meccanismo per disabilitare l audio. 8.6 Risorse in Internet e World Wide Web La galleria multimediale della NASA contiene un ampia varietà di immagini, clip audio e video che possono essere scaricati e utilizzati per testare i propri programmi Java di tipo multimediale. sunsite.sut.ac.jp/multimed/ Il sito Web Sunsite Japan Multimedia Collection fornisce un ampia varietà di immagini, clip audio e video che possono essere scaricati e utilizzati a scopi educativi.

16 452 CAPITOLO 8 Il sito Web Australian National Botanic Gardens offre collegamenti ai suoni di molti animali. Provate il collegamento Common Birds. Offre collegamenti a suoni e immagini gratuiti. Offre audio clip nei formati WAV, AU, AIFF e MIDI. Offre migliaia di animazioni GIF gratuite per uso personale. Servizio (basato su iscrizione) che fornisce immagini e suoni. Fornisce oltre 50 mila immagini gratuite in formato PNG. developer.java.sun.com/developer/techdocs/hi/repository Il Java Look-and-Feel Graphics Repository fornisce immagini standard da usare in una GUI Swing Riferimenti alle librerie Java Multimedia java.sun.com/products/java-media/jmf/ Home page di Java Media Framework (JMF) API. Qui potete scaricare l ultima implementazione del JMF e la relativa documentazione. java.sun.com/products/java-media/sound/ Home page di Java Sound API. Fornisce funzionalità per riprodurre e registrare audio. java.sun.com/products/java-media/3d/ Home page di Java 3D API. Fornisce funzionalità per produrre immagini tridimensionali. developer.java.sun.com/developer/onlinetraining/java3d/ Fornisce un corso di Java 3D API. java.sun.com/products/java-media/jai/ Home page di Java Advanced Imaging API. Fornisce funzionalità per elaborare immagini, come aumento del contrasto, ritaglio, scalatura e trasformazioni geometriche. freetts.sourceforge.net/docs/index.php FreeTTS è un implementazione di Java Speech API. java.sun.com/products/java-media/2d/ Home page di Java 2D API. Questa API (introdotta nel capitolo 1) fornisce funzionalità complesse per le immagini bidimensionali. java.sun.com/j2se/1.4.1/docs/guide/imageio/

17 LA MULTIMEDIALITÀ: LE IMMAGINI, LE ANIMAZIONI E I SUONI 453 Contiene una rassegna di Java Image I/O API, che permette ai programmi di definire il caricamento e il salvataggio di formati di immagini che non sono attualmente supportati dalle librerie Java. 8.7 (Caso di studio facoltativo) Pensare a oggetti: animazioni e suoni nella vista Questo caso di studio si è focalizzato principalmente sul modello MVC della nostra simulazione di ascensore. Ora che abbiamo completato la progettazione del modello, ci occupiamo della vista, che fornisce la presentazione visiva del modello. Nel nostro caso di studio, la vista, incapsulata nella classe ElevatorView, è un oggetto JPanel contenente altri oggetti JPanel figli, ognuno rappresentante un oggetto unico del modello MVC (per esempio, un oggetto Person, un oggetto Button, ecc.). La classe ElevatorView è la classe più grande nel caso di studio. In questa sezione, discutiamo le classi per la grafica e il suono usate da ElevatorView. Presenteremo e spiegheremo il resto del codice sul sito Web /allegati/. Nella sezione 3.7 del volume Tecniche di Base, abbiamo costruito il diagramma di classe del nostro modello individuando sostantivi e frasi dalla specifica del problema. Abbiamo ignorato parecchi di questi sostantivi, perché non erano associati con il modello MVC. Ora, elenchiamo i sostantivi e le frasi che sono relativi alla visualizzazione del modello MVC: visualizzazione audio musica dell ascensore. Il sostantivo visualizzazione corrisponde alla vista, o alla presentazione visuale, del modello MVC. Come descritto nella sezione 2.7, la classe ElevatorView aggrega diverse classi. Il sostantivo audio si riferisce agli effetti sonori che la nostra simulazione genera quando accadono varie azioni; creeremo la classe SoundEffects per generare tali effetti sonori. La frase musica dell ascensore si riferisce alla musica che viene riprodotta quando una persona viaggia sull ascensore; useremo la classe SoundEffects anche per riprodurre questa musica. La vista visualizza gli oggetti del modello MVC. Creeremo la classe ImagePanel per rappresentare gli oggetti stazionari del modello, come ElevatorShaft. Creeremo la classe MovingPanel, che estende ImagePanel, per rappresentare gli oggetti in movimento, come Elevator. Infine, creeremo la classe AnimatedPanel, che estende MovingPanel, per rappresentare gli oggetti in movimento la cui immagine corrispondente cambia continuamente, come Person (useremo diverse immagini per mostrare la persona che cammina e preme un pulsante). Usando queste classi, presentiamo il diagramma di classe della vista per la nostra simulazione nella figura 8.5. Le note indicano i ruoli che hanno le classi nel sistema. Secondo il diagramma di classe, la classe ElevatorView rappresenta la vista, le classi ImagePanel, MovingPanel e AnimatedPanel si riferiscono alla grafica e la classe SoundEffects si riferisce ai suoni. La classe ElevatorView contiene diverse istanze delle classi ImagePanel, MovingPanel e AnimatedPanel e un istanza della classe SoundEffects. Nella versione finale del caso di studio, assoceremo ogni oggetto del modello con una classe corrispondente nella vista.

18 454 CAPITOLO 8 ImagePanel 1..* javax.swing.jpanel 1 MovingPanel 1..* 1 1 ElevatorView 1 Audio AnimatedPanel 1..* 1 SoundEffects Grafica Vista Figura 8.5 Diagramma di classe della vista del simulatore di ascensore In questa sezione, discutiamo le classi ImagePanel, MovingPanel e AnimatedPanel per spiegare la grafica e le animazioni. Poi, discuteremo la classe SoundEffects per spiegare le funzionalità audio. ImagePanel La classe ElevatorView usa oggetti di sottoclassi di JPanel per rappresentare e visualizzare ogni oggetto nel modello (come Elevator, Person, ecc.). La classe ImagePanel (figura 8.6) è una sottoclasse di JPanel in grado di visualizzare un immagine in una data posizione dello schermo. La classe ElevatorView usa oggetti ImagePanel per rappresentare oggetti immobili nel modello, come ElevatorShaft e i due Floor. La classe ImagePanel contiene un attributo intero, ID (riga 16), che dichiara un identificatore unico per tenere traccia dell ImagePanel nella vista. Ciò è utile quando diversi oggetti della stessa classe sono presenti nel modello, come diversi oggetti Person. La classe ImagePanel contiene l oggetto position della classe Point2D.Double (riga 19) per rappresentare la sua posizione sullo schermo. Vedremo più avanti che MovingPanel, che estende ImagePanel, dichiara la velocità con valori double. Convertiremo le coordinate position in valori int per posizionare l oggetto ImagePanel sullo schermo (Java rappresenta le coordinate dello schermo come interi) nel metodo setposition (righe 90-94). La classe ImagePanel contiene anche un oggetto ImageIcon chiamato imageicon (riga 22), il cui metodo paintcomponent (righe 54-60) visualizza l icona sullo schermo. Le righe inizializzano ImageIcon usando un parametro stringa che contiene il nome dell immagine. Infine, la classe ImagePanel contiene l oggetto panelchildren della classe Set (riga 25) che memorizza tutti gli oggetti JPanel figli (o oggetti di una sottoclasse di JPanel). Gli oggetti figli vengono visualizzati sopra il loro ImagePanel genitore: per esempio, un oggetto Person dentro un Elevator. Il primo metodo add (righe 63-67) aggiunge un oggetto a panelchildren. Il secondo metodo add (righe 70-74) inserisce un oggetto in panelchildren all indice specificato. Il metodo seticon (righe 84-87) imposta imageicon con una nuova immagine. Gli oggetti della classe AnimatedPanel usano

19 LA MULTIMEDIALITÀ: LE IMMAGINI, LE ANIMAZIONI E I SUONI 455 ripetutamente il metodo seticon per cambiare l immagine visualizzata, in modo da eseguire l animazione. 1 // ImagePanel.java 2 // sottoclasse di JPanel per posizionare e visualizzare ImageIcon 3 package com.deitel.jhtp5.elevator.view; 4 5 // package Java di base Java 6 import java.awt.*; 7 import java.awt.geom.*; 8 import java.util.*; 9 10 // package Java di estensione 11 import javax.swing.*; public class ImagePanel extends JPanel { // identificatore 16 private int ID; // posizione sullo schermo 19 private Point2D.Double position; // imageicon da disegnare sullo schermo 22 private ImageIcon imageicon; // memorizza tutti i figli di ImagePanel 25 private Set panelchildren; // costruttore che inizializza posizione e immagine 28 public ImagePanel( int identifier, String imagename ) 29 { 30 super( null ); // specifica layout null 31 setopaque( false ); // rende trasparente // imposta identificatore unico 34 ID = identifier; // imposta posizione 37 position = new Point2D.Double( 0, 0 ); 38 setlocation( 0, 0 ); // crea ImageIcon con imagename dato 41 imageicon = new ImageIcon( 42 getclass().getresource( imagename ) ); Image image = imageicon.getimage(); Figura 8.6 La classe ImagePanel rappresenta e visualizza un oggetto immobile del modello (continua)

20 456 CAPITOLO 8 45 setsize( 46 image.getwidth( this ), image.getheight( this ) ); // crea Set per memorizzare i figli di Panel 49 panelchildren = new HashSet(); } // fine costruttore di ImagePanel // disegna Panel sullo schermo 54 public void paintcomponent( Graphics g ) 55 { 56 super.paintcomponent( g ); // se l immagine e pronta, disegnala sullo schermo 59 imageicon.painticon( this, g, 0, 0 ); 60 } // aggiunge figlio di ImagePanel a ImagePanel 63 public void add( ImagePanel panel ) 64 { 65 panelchildren.add( panel ); 66 super.add( panel ); 67 } // aggiunge figlio di ImagePanel a ImagePanel all indice dato 70 public void add( ImagePanel panel, int index ) 71 { 72 panelchildren.add( panel ); 73 super.add( panel, index ); 74 } // rimuove figlio di ImagePanel da ImagePanel 77 public void remove( ImagePanel panel ) 78 { 79 panelchildren.remove( panel ); 80 super.remove( panel ); 81 } // imposta ImageIcon corrente da visualizzare 84 public void seticon( ImageIcon icon ) 85 { 86 imageicon = icon; 87 } // imposta posizione sullo schermo 90 public void setposition( double x, double y ) 91 { 92 position.setlocation( x, y ); Figura 8.6 La classe ImagePanel rappresenta e visualizza un oggetto immobile del modello (continua)

21 LA MULTIMEDIALITÀ: LE IMMAGINI, LE ANIMAZIONI E I SUONI setlocation( ( int ) x, ( int ) y ); 94 } // ritorna identificatore di ImagePanel 97 public int getid() 98 { 99 return ID; 100 } // ottiene posizione di ImagePanel 103 public Point2D.Double getposition() 104 { 105 return position; 106 } // ottiene imageicon 109 public ImageIcon getimageicon() 110 { 111 return imageicon; 112 } // ottiene Set di figli di ImagePanel 115 public Set getchildren() 116 { 117 return panelchildren; 118 } 119 } Figura 8.6 La classe ImagePanel rappresenta e visualizza un oggetto immobile del modello MovingPanel La classe MovingPanel (figura 8.7) è una sottoclasse di ImagePanel in grado di cambiare la sua posizione sullo schermo in base ai valori xvelocity e yvelocity (righe 20-21). La classe ElevatorView usa oggetti MovingPanel per rappresentare oggetti mobili del modello, come Elevator. 1 // MovingPanel.java 2 // Sottoclasse di JPanel con funzionalità di movimento sullo schermo 3 package com.deitel.jhtp5.elevator.view; 4 5 // package Java di base 6 import java.awt.*; 7 import java.awt.geom.*; 8 import java.util.*; 9 10 // package Java di estensione Figura 8.7 La classe MovingPanel rappresenta e visualizza un oggetto che si muove dal modello (continua)

22 458 CAPITOLO 8 11 import javax.swing.*; public class MovingPanel extends ImagePanel { // MovingPanel dovrebbe cambiare posizione? 16 private boolean moving; // numero di pixel di cui MovingPanel si muove nelle direzioni x e y 19 // per animationdelay millisecondi 20 private double xvelocity; 21 private double yvelocity; // costruttore che inizializza posizione, velocità e immagine 24 public MovingPanel( int identifier, String imagename ) 25 { 26 super( identifier, imagename ); // imposta velocità di MovingPanel 29 xvelocity = 0; 30 yvelocity = 0; } // fine costruttore di MovingPanel // aggiorna posizione e animazione di MovingPanel 35 public void animate() 36 { 37 // aggiorna posizione a seconda della velocità 38 if ( ismoving() ) { 39 double oldxposition = getposition().getx(); 40 double oldyposition = getposition().gety(); setposition( oldxposition + xvelocity, 43 oldyposition + yvelocity ); 44 } // aggiorna tutti i figli di MovingPanel 47 Iterator iterator = getchildren().iterator(); while ( iterator.hasnext() ) { 50 MovingPanel panel = ( MovingPanel ) iterator.next(); 51 panel.animate(); 52 } 53 } // fine metodo animate // MovingPanel si sta muovendo sullo schermo? 56 public boolean ismoving() 57 { 58 return moving; 59 } Figura 8.7 La classe MovingPanel rappresenta e visualizza un oggetto che si muove dal modello (continua)

23 LA MULTIMEDIALITÀ: LE IMMAGINI, LE ANIMAZIONI E I SUONI // imposta MovingPanel per muoversi sullo schermo 62 public void setmoving( boolean move ) 63 { 64 moving = move; 65 } // imposta le velocità x e y di MovingPanel 68 public void setvelocity( double x, double y ) 69 { 70 xvelocity = x; 71 yvelocity = y; 72 } // ritorna velocità x di MovingPanel 75 public double getxvelocity() 76 { 77 return xvelocity; 78 } // ritorna velocità y di MovingPanel 81 public double getyvelocity() 82 { 83 return yvelocity; 84 } 85 } Figura 8.7 La classe MovingPanel rappresenta e visualizza un oggetto che si muove dal modello Il metodo animate (righe 35-53) muove MovingPanel secondo i valori attuali dei campi xvelocity e yvelocity. Se la variabile boolean moving (riga 16) è true, le righe usano i campi xvelocity e yvelocity per determinare la prossima posizione di movingpanel. Le righe ripetono il procedimento per tutti i figli. Nella nostra simulazione, ElevatorView invoca il metodo animate e il metodo paintcomponent della classe ImagePanel ogni 50 millisecondi. Queste chiamate in rapida successione spostano l oggetto MovingPanel. AnimatedPanel La classe AnimatedPanel (figura 8.8), che estende la classe MovingPanel, rappresenta un oggetto animato del modello (cioè, oggetti in movimento la cui immagine corrispondente cambia continuamente), come Person. La classe ElevatorView anima un AnimatedPanel cambiando l immagine associata con imageicon. 1 // AnimatedPanel.java 2 // Sottoclasse di Panel con funzionalità di animazione 3 package com.deitel.jhtp5.elevator.view; 4 Figura 8.8 La classe AnimatedPanel rappresenta e visualizza un oggetto animato dal modello (continua)

24 460 CAPITOLO 8 5 // package Java di base 6 import java.awt.*; 7 import java.util.*; 8 9 // package Java di estensione 10 import javax.swing.*; public class AnimatedPanel extends MovingPanel { // ImageIcon deve essere animato? 15 private boolean animating; // frequenza di cambio immagine 18 private int animationrate; 19 private int animationratecounter; 20 private boolean cycleforward = true; // ImageIcon individuali usati per l animazione 23 private ImageIcon imageicons[]; // memorizza tutte le sequenze di frame 26 private java.util.list framesequences; 27 private int currentanimation; // deve continuare l animazione alla fine del ciclo? 30 private boolean loop; // deve visualizzare l ultima immagine alla fine dell animazione? 33 private boolean displaylastframe; // determina la prossima immagine da visualizzare 36 private int currentframecounter; // costruttore che prende un array di nomi di file 39 public AnimatedPanel( int identifier, String imagename[] ) 40 { 41 super( identifier, imagename[0] ); // crea oggetti ImageIcon dall array di stringhe imagename 44 imageicons = new ImageIcon[ imagename.length ]; for ( int i = 0; i < imageicons.length; i++ ) { 47 imageicons[i] = new ImageIcon( 48 getclass().getresource( imagename[i] ) ); 49 } framesequences = new ArrayList(); } // fine costruttore di AnimatedPanel 54 Figura 8.8 La classe AnimatedPanel rappresenta e visualizza un oggetto animato dal modello (continua)

25 LA MULTIMEDIALITÀ: LE IMMAGINI, LE ANIMAZIONI E I SUONI // aggiorna posizione dell icona e immagine dell animazione 56 public void animate() 57 { 58 super.animate(); // visualizza la prossima immagine se counter > frequenza di animazione 61 if ( framesequences!= null && isanimating() ) { if ( animationratecounter > animationrate ) { 64 animationratecounter = 0; 65 determinenextframe(); 66 } 67 else 68 animationratecounter++; 69 } 70 } // fine metodo animate // determina prossima immagine dell animazione 73 private void determinenextframe() 74 { 75 int framesequence[] = 76 ( int[] ) framesequences.get( currentanimation ); // se non ci sono più immagini, determina immagine finale 79 // a meno che non si debba ripetere l animazione 80 if ( currentframecounter >= framesequence.length ) { 81 currentframecounter = 0; // se loop è false, termina animazione 84 if (!isloop() ) { setanimating( false ); if ( isdisplaylastframe() ) // visualizza ultima immagine della sequenza 91 currentframecounter = framesequence.length - 1; 92 } 93 } // imposta immagine corrente dell animazione 96 setcurrentframe( framesequence[ currentframecounter ] ); 97 currentframecounter++; } // fine metodo determinenextframe // aggiunge animazione all ArrayList framesequences Figura 8.8 La classe AnimatedPanel rappresenta e visualizza un oggetto animato dal modello (continua)

26 462 CAPITOLO public void addframesequence( int framesequence[] ) 103 { 104 framesequences.add( framesequence ); 105 } // chiede se AnimatedPanel sta eseguendo l animazione 108 public boolean isanimating() 109 { 110 return animating; 111 } // imposta AnimatedPanel per eseguire l animazione 114 public void setanimating( boolean animate ) 115 { 116 animating = animate; 117 } // imposta ImageIcon corrente 120 public void setcurrentframe( int frame ) 121 { 122 seticon( imageicons[ frame ] ); 123 } // imposta frequenza di animazione 126 public void setanimationrate( int rate ) 127 { 128 animationrate = rate; 129 } // ottiene frequenza di animazione 132 public int getanimationrate() 133 { 134 return animationrate; 135 } // imposta se l animazione deve ripetersi 138 public void setloop( boolean loopanimation ) 139 { 140 loop = loopanimation; 141 } // ottiene se l animazione deve ripetersi 144 public boolean isloop() 145 { 146 return loop; 147 } 148 Figura 8.8 La classe AnimatedPanel rappresenta e visualizza un oggetto animato dal modello (continua)

27 LA MULTIMEDIALITÀ: LE IMMAGINI, LE ANIMAZIONI E I SUONI // ottiene se visualizzare l ultima immagine alla fine dell animazione 150 private boolean isdisplaylastframe() 151 { 152 return displaylastframe; 153 } // imposta se visualizzare l ultima immagine alla fine dell animazione 156 public void setdisplaylastframe( boolean displayframe ) 157 { 158 displaylastframe = displayframe; 159 } // inizia ad eseguire la sequenza di animazione all indice dato 162 public void playanimation( int framesequence ) 163 { 164 currentanimation = framesequence; 165 currentframecounter = 0; 166 setanimating( true ); 167 } 168 } Figura 8.8 La classe AnimatedPanel rappresenta e visualizza un oggetto animato dal modello La classe AnimatedPanel sceglie un oggetto ImageIcon da disegnare sullo schermo tra diversi oggetti ImageIcon memorizzati nell array imageicons (riga 23). La classe AnimatedPanel determina l oggetto ImageIcon secondo una sequenza di riferimenti, memorizzata nella lista framesequences (riga 26), che è un array di interi che memorizza la sequenza appropriata per visualizzare gli oggetti ImageIcon: in particolare, ogni intero rappresenta l indice di un oggetto ImageIcon nell array imageicons. La figura 8.9 mostra la relazione tra imageicons e framesequences (questo non è un diagramma UML). Per esempio, la sequenza numero 2 = { 2, 1, 0 } si riferisce a { imageicon[2], imageicon[1], imageicon[0] }, che porta alla sequenza di immagini { C, B, A }. Nella vista, ogni immagine è un file.png unico. Il metodo framesequences image sequences imageicons 0= A B C 1= A B D B A A B C D = C B A 3= D C C A Figura 8.9 Relazione tra l array imageicons e la lista FrameSequences

LA MULTIMEDIALITÀ: LE IMMAGINI, LE ANIMAZIONI E I SUONI 1

LA MULTIMEDIALITÀ: LE IMMAGINI, LE ANIMAZIONI E I SUONI 1 LA MULTIMEDIALITÀ: LE IMMAGINI, LE ANIMAZIONI E I SUONI 1 8.7 (Caso di studio facoltativo) Pensare a oggetti: animazioni e suoni nella vista Questo caso di studio si è focalizzato principalmente sul modello

Dettagli

Grafico della parabola

Grafico della parabola Grafico della parabola Il grafico matematico è un disegno che mostra l andamento di una funzione f(x) al variare della variabile x. Per tracciare un grafico sul video del computer, si deve scegliere un

Dettagli

L applicazione di MVC alla simulazione di ascensore I COMPONENTI DELLE INTERFACCE UTENTE GRAFICHE: PARTE II 1

L applicazione di MVC alla simulazione di ascensore I COMPONENTI DELLE INTERFACCE UTENTE GRAFICHE: PARTE II 1 I COMPONENTI DELLE INTERFACCE UTENTE GRAFICHE: PARTE II 1 3.13 (Caso di studio facoltativo) Pensare a oggetti: Modello-Vista-Controllore I design pattern descrivono strategie efficaci per costruire sistemi

Dettagli

I Canvas. import java.awt.*; import javax.swing.*; public class Graf{ public Graf () { JFrame f = new JFrame("Finestra"); // crea frame invisibile

I Canvas. import java.awt.*; import javax.swing.*; public class Graf{ public Graf () { JFrame f = new JFrame(Finestra); // crea frame invisibile I Canvas Tra i vari contenitori Java il Canvas (area di disegno o tela) è una semplice superficie di disegno particolarmente utile per visualizzare immagini o per effettuare altre operazioni grafiche.

Dettagli

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Capittol lo 2 Visualizzazione 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Nel primo capitolo sono state analizzate le diverse componenti della finestra di Word 2000: barra del titolo, barra dei menu,

Dettagli

Java Applet. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010

Java Applet. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Java Applet 1 Application VS Applet Una

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

L interfaccia grafica in Java

L interfaccia grafica in Java L interfaccia grafica in Java Java possiede due package per la creazione di interfacce grafiche java.awt javax.swing AWT (Abstract Widget Toolkit) presente già in Java 1.0, migliorato in Java 1.1. Invariato

Dettagli

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali PowerPoint Come costruire una presentazione PowerPoint 1 Introduzione! PowerPoint è uno degli strumenti presenti nella suite Office di Microsoft! PowerPoint permette la realizzazione di presentazioni video

Dettagli

Il calendario di Windows Vista

Il calendario di Windows Vista Il calendario di Windows Vista Una delle novità introdotte in Windows Vista è il Calendario di Windows, un programma utilissimo per la gestione degli appuntamenti, delle ricorrenze e delle attività lavorative

Dettagli

Progettazione : Design Pattern Creazionali

Progettazione : Design Pattern Creazionali Progettazione : Design Pattern Creazionali Alessandro Martinelli alessandro.martinelli@unipv.it 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali

Dettagli

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate MODULO BASE Quanto segue deve essere rispettato se si vuole che le immagini presentate nei vari moduli corrispondano, con buona probabilità, a quanto apparirà nello schermo del proprio computer nel momento

Dettagli

Cosa è un foglio elettronico

Cosa è un foglio elettronico Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

Esercitazione n 4. Obiettivi

Esercitazione n 4. Obiettivi Esercitazione n 4 Obiettivi Progettare e implementare per intero un componente software in Java Linguaggio Java: Classi astratte Utilizzo di costruttori e metodi di superclasse Polimorfismo Esempio guida:

Dettagli

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012 Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono

Dettagli

Manuale Utente Amministrazione Trasparente GA

Manuale Utente Amministrazione Trasparente GA Manuale Utente GA IDENTIFICATIVO DOCUMENTO MU_AMMINISTRAZIONETRASPARENTE-GA_1.0 Versione 1.0 Data edizione 03.05.2013 1 Albo Pretorio On Line TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione

Dettagli

Prova di Laboratorio di Programmazione

Prova di Laboratorio di Programmazione Prova di Laboratorio di Programmazione 6 febbraio 015 ATTENZIONE: Non è possibile usare le classi del package prog.io del libro di testo. Oltre ai metodi richiesti in ciascuna classe, è opportuno implementare

Dettagli

Le basi della grafica in Java. Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni

Le basi della grafica in Java. Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni Le basi della grafica in Java Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni Elaborazione classica o imperativa L elaborazione è concentrata nel momento centrale, durante

Dettagli

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta

Dettagli

Il controllo della visualizzazione

Il controllo della visualizzazione Capitolo 3 Il controllo della visualizzazione Per disegnare in modo preciso è necessario regolare continuamente l inquadratura in modo da vedere la parte di disegno che interessa. Saper utilizzare gli

Dettagli

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito) Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito) Le seguenti istruzioni sono relative all installazione di IBM SPSS Modeler Text Analytics versione 15 mediante un licenza

Dettagli

Presentation Draw. Guida dell utilizzatore

Presentation Draw. Guida dell utilizzatore Presentation Draw I Guida dell utilizzatore Conservare l intera documentazione dell utente a portata di mano per riferimenti futuri. Il termine puntatore in questo manuale si riferisce al puntatore interattivo

Dettagli

COGNOME.NOME. Matricola

COGNOME.NOME. Matricola Esame di PROGRAMMAZIONE ORIENTATA AGLI OGGETTI Appello del 4.9.2013 COGNOME.NOME. Matricola Tre classi, denominate Anemone, Fiordaliso e Viola devono assicurare la visualizzazione di un fiore stilizzato

Dettagli

Guida all uso di Java Diagrammi ER

Guida all uso di Java Diagrammi ER Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA5 B1 Gestione eventi 1 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti AWT o Swing Programmazione ad eventi 2 1 Introduzione Le interfacce create

Dettagli

IL MIO PRIMO SITO NEWS USANDO GLI SCHEDARI

IL MIO PRIMO SITO NEWS USANDO GLI SCHEDARI Pagina 1 UN SISTEMA DI NEWS Sommario UN SISTEMA DI NEWS...1 Introduzione...2 Scelgo l'area su cui operare...3 Un minimo di teoria...3 Creo le Pagine...4 Definizione dello Schedario Novità...6 Compilo la

Dettagli

Identificare le classi in un sistema

Identificare le classi in un sistema 3.7 (Caso di studio facoltativo) Pensare a oggetti: identificare le classi nella specifica del problema Cominciamo ad affrontare la progettazione del simulatore di ascensore introdotto nel capitolo. Iniziamo

Dettagli

La specifica del problema

La specifica del problema 2.9 (Caso di studio facoltativo) Pensare a oggetti: esame del problema Iniziamo ora a esaminare il nostro caso di studio di progettazione e implementazione orientate agli oggetti. Le sezioni Pensare a

Dettagli

Manuale Utente Albo Pretorio GA

Manuale Utente Albo Pretorio GA Manuale Utente Albo Pretorio GA IDENTIFICATIVO DOCUMENTO MU_ALBOPRETORIO-GA_1.4 Versione 1.4 Data edizione 04.04.2013 1 TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione delle modifiche apportate

Dettagli

Novità di Access 2010

Novità di Access 2010 2 Novità di Access 2010 In questo capitolo: Gestire le impostazioni e i file di Access nella visualizzazione Backstage Personalizzare l interfaccia utente di Access 2010 Creare database utilizzando modelli

Dettagli

Esercizi di JavaScript

Esercizi di JavaScript Esercizi di JavaScript JavaScript JavaScript é un linguaggio di programmazione interpretato e leggero, creato dalla Netscape. E' presente a patire da Netscape 2 in tutti i browser ed é dunque il linguaggio

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Registratori di Cassa

Registratori di Cassa modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...

Dettagli

Simulazione traffico urbano

Simulazione traffico urbano Simulazione traffico urbano Si richiede di simulare il movimento del traffico in un ipotetico tratto di strada che viene percorso da delle automobili e che dei pedoni devono attraversare. La situazione

Dettagli

per immagini guida avanzata Uso delle tabelle e dei grafici Pivot Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1

per immagini guida avanzata Uso delle tabelle e dei grafici Pivot Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Uso delle tabelle e dei grafici Pivot Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Una tabella Pivot usa dati a due dimensioni per creare una tabella a tre dimensioni, cioè una tabella

Dettagli

Modulo 4: Ereditarietà, interfacce e clonazione

Modulo 4: Ereditarietà, interfacce e clonazione Modulo 4: Ereditarietà, interfacce e clonazione Argomenti Trattati: Classi, Superclassi e Sottoclassi Ereditarietà Ereditarietà ed Attributi Privati Override super Ereditarietà e Costruttori Polimorfismo

Dettagli

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare

Dettagli

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare.

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare. Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare. E stato previsto l utilizzo di uno specifico prodotto informatico (denominato

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Grafica: Thread versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Programmazione Java: Interfacce grafiche (GUI)

Programmazione Java: Interfacce grafiche (GUI) Programmazione Java: Interfacce grafiche (GUI) romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp ( 1 ) (GUI) Interfacce grafiche Rendere facili le cose semplici e possibili le cose difficili

Dettagli

Informatica 1 Lezione 1

Informatica 1 Lezione 1 Informatica 1 Lezione 1 Concetti base: Hardware È l insieme delle parti fisiche, elettroniche e meccaniche che compongono il computer, quali il chip, il mouse, il lettore CDROM, il monitor, le schede,

Dettagli

GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C

GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C.:luxx:. PREMESSE In questa guida non verranno trattati i costrutti di flusso, le funzioni, o comunque le caratteristiche del linguaggio, che si danno come presupposte.

Dettagli

Microsoft Office XP. dott. ing. Angelo Carpenzano. acarpenzano@neoteksolutions.it. La suite Microsoft Office XP

Microsoft Office XP. dott. ing. Angelo Carpenzano. acarpenzano@neoteksolutions.it. La suite Microsoft Office XP Microsoft Office XP dott. ing. Angelo Carpenzano acarpenzano@neoteksolutions.it 1 La suite Microsoft Office XP Microsoft Word: elaboratore testi (word processor) Microsoft Excel: foglio di calcolo (spreadsheet)

Dettagli

SmartGPS Satellite Information System Guida all utilizzo del programma Sviluppato da Fabio e Marco Adriani Versione 1.0.0

SmartGPS Satellite Information System Guida all utilizzo del programma Sviluppato da Fabio e Marco Adriani Versione 1.0.0 SmartGPS Satellite Information System Guida all utilizzo del programma Sviluppato da Fabio e Marco Adriani Versione 1.0.0 Benvenuto in SmartGPS, l'applicativo che consente di determinare, utilizzando un

Dettagli

2.2.2.1 Identificare le diverse parti di una finestra: barra del titolo, barra dei menu, barra degli strumenti, barra di stato, barra di scorrimento.

2.2.2.1 Identificare le diverse parti di una finestra: barra del titolo, barra dei menu, barra degli strumenti, barra di stato, barra di scorrimento. Uso del computer e gestione dei file 57 2.2.2.1 Identificare le diverse parti di una finestra: barra del titolo, barra dei menu, barra degli strumenti, barra di stato, barra di scorrimento. All interno

Dettagli

Figura 1 Le Icone dei file di Excel con e senza macro.

Figura 1 Le Icone dei file di Excel con e senza macro. 18 Le macro Le macro rappresentano una soluzione interessante per automatizzare e velocizzare l esecuzione di operazioni ripetitive. Le macro, di fatto, sono porzioni di codice VBA (Visual Basic for Applications)

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

WoWords. Guida all uso: creare ed utilizzare le frasi. In questa guida è descritto come creare ed utilizzare le frasi nel software WoWords.

WoWords. Guida all uso: creare ed utilizzare le frasi. In questa guida è descritto come creare ed utilizzare le frasi nel software WoWords. In questa guida è descritto come creare ed utilizzare le frasi nel software WoWords. Premessa Oltre alle singole parole WoWords può gestire intere frasi in inglese. A differenza delle singole parole, le

Dettagli

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1 Pagina 1 Sommario...1 Apertura...2 Visualizzazioni...2 Elenco...2 Testo sul pulsante e altre informazioni...3 Comandi...3 Informazioni...4 Flow chart...5 Comandi...6 Pulsanti Principali e Pulsanti Dipendenti...6

Dettagli

1. Il Client Skype for Business

1. Il Client Skype for Business 1. Il Client Skype for Business 2. Configurare una Periferica Audio 3. Personalizzare una Periferica Audio 4. Gestire gli Stati di Presenza 5. Tabella Stati di Presenza 6. Iniziare una Chiamata 7. Iniziare

Dettagli

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste versione 2.1 24/09/2015 aggiornamenti: 23-set-2015; 24-set-2015 Autore: Francesco Brunetta (http://www.francescobrunetta.it/)

Dettagli

Plate Locator Riconoscimento Automatico di Targhe

Plate Locator Riconoscimento Automatico di Targhe Progetto per Laboratorio di Informatica 3 - Rimotti Daniele, Santinelli Gabriele Plate Locator Riconoscimento Automatico di Targhe Il programma plate_locator.m prende come input: l immagine della targa

Dettagli

Esercitazioni di Progettazione del Software. Esercitazione (Prova al calcolatore del 17 settembre 2010)

Esercitazioni di Progettazione del Software. Esercitazione (Prova al calcolatore del 17 settembre 2010) Sapienza - Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Corso di Laurea in Ingegneria Informatica ed Automatica, Ingegneria dei Sistemi Informatici Esercitazioni

Dettagli

Joomla: Come installarlo e come usarlo. A cura di

Joomla: Come installarlo e come usarlo. A cura di Joomla: Come installarlo e come usarlo. A cura di In questa dispensa andremo a vedere come si installa joomla sul noto software xampp e come viene usato per creare siti web dinamici. Tecnol earn Firmato

Dettagli

ISTRUZIONI XCODE. Autore: Luca Florio (luca.florio<at>polimi.it)

ISTRUZIONI XCODE. Autore: Luca Florio (luca.florio<at>polimi.it) ISTRUZIONI XCODE Autore: Luca Florio (luca.floriopolimi.it) XCode è l ambiente di sviluppo fornito da Apple che permette la creazione di applicazioni OSX e iphone. In questa guida vedremo come installarlo

Dettagli

SPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli)

SPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli) SPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli) Le seguenti istruzioni sono relative all installazione di SPSS Statistics con licenza per utenti singoli. Una

Dettagli

Linee Guida all uso dell ESLC Testing Tool per gli studenti (IT)

Linee Guida all uso dell ESLC Testing Tool per gli studenti (IT) Linee Guida all uso dell ESLC Testing Tool per gli studenti (IT) Indice 1 INTRODUZIONE 3 2 COME EFFETTUARE I TEST 3 2.1 Effettuare l accesso 3 2.2 Controllare l audio per il Test di ascolto 5 2.3 Svolgere

Dettagli

Gui Gu d i a d ra r p a i p d i a V d o a d f a one Int fone In e t r e net rnet Box Key Mini

Gui Gu d i a d ra r p a i p d i a V d o a d f a one Int fone In e t r e net rnet Box Key Mini Guida rapida Vodafone Internet Key Box Mini Ideato per Vodafone QSG_VMCLite_v31_10-2007_e172_IT.1 1 10/10/07 14:39:10 QSG_VMCLite_v31_10-2007_e172_IT.2 2 10/10/07 14:39:11 Benvenuti nel mondo della connessione

Dettagli

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (utente singolo)

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (utente singolo) Istruzioni di installazione di IBM SPSS Modeler Text Analytics (utente singolo) Le seguenti istruzioni sono relative all installazione di IBM SPSS Modeler Text Analytics versione 15 mediante un licenza

Dettagli

Guida. Macchina Scratch

Guida. Macchina Scratch Pagina 1 di 22 Guida Macchina Scratch Pagina 2 di 22 Scopo Lo scopo della guida è quello di spiegare all'utente come sia possibile creare un unità da scratch con il software Nuovo AHU. La guida spiegherà

Dettagli

MANUALE PORTALE UTENTE IMPRENDITORE

MANUALE PORTALE UTENTE IMPRENDITORE MANUALE PORTALE UTENTE IMPRENDITORE Indice 1. REQUISITI MINIMI DI SISTEMA E CONTATTI PROGETTO RIGENER@... 3 2. IL PORTALE RIGENER@... 4 2.1 ACCESSO ALLE AREE PRIVATE... 7 2.1.1 Accesso al sito con Windows

Dettagli

IRSplit. Istruzioni d uso 07/10-01 PC

IRSplit. Istruzioni d uso 07/10-01 PC 3456 IRSplit Istruzioni d uso 07/10-01 PC 2 IRSplit Istruzioni d uso Indice 1. Requisiti Hardware e Software 4 1.1 Requisiti Hardware 4 1.2 Requisiti Software 4 2. Installazione 4 3. Concetti fondamentali

Dettagli

MANUALE D USO DELL E-COMMERCE. Versione avanzata

MANUALE D USO DELL E-COMMERCE. Versione avanzata MANUALE D USO DELL E-COMMERCE Versione avanzata Versione SW. 2 Rev. 0.2 Sommario 1 Personalizzare i contenuti del sito... 3 1.1 Inserimento logo e slogan azienda... 3 1.2 Modificare i dati dell Azienda...

Dettagli

CREARE UN JUKEBOX CON POWERPOINT

CREARE UN JUKEBOX CON POWERPOINT CREARE UN JUKEBOX CON POWERPOINT La creazione di un Jukebox con PowerPoint ti consentirà di sfruttare alcune interessanti funzioni di questo programma, che potrai riutilizzare in futuro anche per altri

Dettagli

Configurare TPTP in Eclipse e testare un applicazione

Configurare TPTP in Eclipse e testare un applicazione Configurare TPTP in Eclipse e testare un applicazione Questa guida concentra la sua attenzione sul tool TPTP (Test & Performance Tools Platform) presente nell ambiente di sviluppo Eclipse. Verrà descritta

Dettagli

Università di L Aquila Facoltà di Biotecnologie Agro-alimentari

Università di L Aquila Facoltà di Biotecnologie Agro-alimentari RIFERIMENTI Università di L Aquila Facoltà di Biotecnologie Agro-alimentari Esame di Laboratorio di informatica e statistica Parte 3 (versione 1.0) Il riferimento permette di identificare univocamente

Dettagli

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 PAG. 2 DI 38 INDICE 1. PREMESSA 3 2. SCARICO DEL SOFTWARE 4 2.1 AMBIENTE WINDOWS 5 2.2 AMBIENTE MACINTOSH 6 2.3 AMBIENTE

Dettagli

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro, EXCEL PER WINDOWS95 1.Introduzione ai fogli elettronici I fogli elettronici sono delle applicazioni che permettono di sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area

Dettagli

Manuale NetSupport v.10.70.6 Liceo G. Cotta Marco Bolzon

Manuale NetSupport v.10.70.6 Liceo G. Cotta Marco Bolzon NOTE PRELIMINARI: 1. La versione analizzata è quella del laboratorio beta della sede S. Davide di Porto, ma il programma è presente anche nel laboratorio alfa (Porto) e nel laboratorio di informatica della

Dettagli

LITESTAR 4D v.2.01. Manuale d Uso. WebCatalog Catalogo Elettronico interattivo su Internet. Luglio 2013

LITESTAR 4D v.2.01. Manuale d Uso. WebCatalog Catalogo Elettronico interattivo su Internet. Luglio 2013 LITESTAR 4D v.2.01 Manuale d Uso WebCatalog Catalogo Elettronico interattivo su Internet Luglio 2013 Sommario Webcatalog Catalogo Elettronico interattivo su Internet... 3 Introduzione e Accesso... 3 Metodi

Dettagli

Il web server Apache Lezione n. 3. Introduzione

Il web server Apache Lezione n. 3. Introduzione Procurarsi ed installare il web server Apache Introduzione In questa lezione cominciamo a fare un po di pratica facendo una serie di operazioni preliminari, necessarie per iniziare a lavorare. In particolar

Dettagli

15 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

15 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 15 - Packages Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di

Dettagli

Installazione e caratteristiche generali 1

Installazione e caratteristiche generali 1 Installazione e caratteristiche generali 1 Introduzione SIGLA Ultimate e SIGLA Start Edition possono essere utilizzati solo se sono soddisfatti i seguenti prerequisiti: Microsoft.Net Framework 3.5 (consigliato

Dettagli

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 3 - Variabili Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di

Dettagli

Cominciamo dalla barra multifunzione, ossia la struttura a schede che ha sostituito la barra dei menu e la barra delle icone (Figura 1).

Cominciamo dalla barra multifunzione, ossia la struttura a schede che ha sostituito la barra dei menu e la barra delle icone (Figura 1). La barra multifunzione La barra multifunzione e il pulsante Microsoft Office Se avete lavorato per tanti anni con la suite da ufficio Office, questa nuova versione 2007 può disorientarvi davvero molto.

Dettagli

Modulo 6 Strumenti di presentazione

Modulo 6 Strumenti di presentazione Modulo 6 Strumenti di presentazione Gli strumenti di presentazione permettono di realizzare documenti ipertestuali composti da oggetti provenienti da media diversi, quali: testo, immagini, video digitali,

Dettagli

Guida Joomla. di: Alessandro Rossi, Flavio Copes

Guida Joomla. di: Alessandro Rossi, Flavio Copes Guida Joomla di: Alessandro Rossi, Flavio Copes Grafica e template 1. 15. La grafica e i template Personalizzare l'aspetto del sito aggiungendo nuovi template e customizzandoli 2. 16. Personalizzare il

Dettagli

PowerPoint 2007 Le funzioni

PowerPoint 2007 Le funzioni PowerPoint 2007 Le funzioni Introduzione Cos è un ipertesto L' ipertesto è un testo organizzato in link, o collegamenti ad altre parti del testo e/o altri testi, in modo da consentire all utente di scegliere

Dettagli

START Easy GO! Il gestionale sempre in tasca! Procedura di aggiornamento. Documentazione utente Pagina 1 di 18

START Easy GO! Il gestionale sempre in tasca! Procedura di aggiornamento. Documentazione utente Pagina 1 di 18 Procedura di aggiornamento Il gestionale sempre in tasca! Documentazione utente Pagina 1 di 18 Sommario Avvertenze... 3 Operazioni preliminari... 3 Salvataggi... 3 Download aggiornamenti... 5 Aggiornamento

Dettagli

IL MIO PRIMO SITO: NEWS

IL MIO PRIMO SITO: NEWS Pagina 1 IL MIO PRIMO SITO: NEWS Sommario IL MIO PRIMO SITO: NEWS...1 Introduzione...2 I Contenitori...2 Creo un Contenitore...3 I Tracciati...4 Creo le Notizie...6 Inserisco il Testo...6 Inserisco un

Dettagli

STRUMENTI DI PRESENTAZIONE MODULO 6

STRUMENTI DI PRESENTAZIONE MODULO 6 STRUMENTI DI PRESENTAZIONE MODULO 6 2012 A COSA SERVE POWER POINT? IL PROGRAMMA NASCE PER LA CREAZIONE DI PRESENTAZIONI BASATE SU DIAPOSITIVE (O LUCIDI) O MEGLIO PER PRESENTARE INFORMAZIONI IN MODO EFFICACE

Dettagli

SOMMARIO... 3 INTRODUZIONE...

SOMMARIO... 3 INTRODUZIONE... Sommario SOMMARIO... 3 INTRODUZIONE... 4 INTRODUZIONE ALLE FUNZIONALITÀ DEL PROGRAMMA INTRAWEB... 4 STRUTTURA DEL MANUALE... 4 INSTALLAZIONE INRAWEB VER. 11.0.0.0... 5 1 GESTIONE INTRAWEB VER 11.0.0.0...

Dettagli

7.4 Estrazione di materiale dal web

7.4 Estrazione di materiale dal web 7.4 Estrazione di materiale dal web Salvataggio di file Salvataggio della pagina Una pagina web può essere salvata in locale per poterla consultare anche senza essere collegati alla Rete. Si può scegliere

Dettagli

MANUALE EDICOLA 04.05

MANUALE EDICOLA 04.05 MANUALE EDICOLA 04.05 Questo è il video che si presenta avviando il programma di Gestione Edicola. Questo primo video è relativo alle operazioni di carico. CARICO Nello schermo di carico, in alto a sinistra

Dettagli

Modello per la compilazione della scheda progetto SK_3.1.xls (da utilizzarsi per la presentazione di progetti di attività formative)

Modello per la compilazione della scheda progetto SK_3.1.xls (da utilizzarsi per la presentazione di progetti di attività formative) Provincia di Genova Area 10 - Politiche Formative e Istruzione Modello per la compilazione della scheda progetto SK_3.1.xls (da utilizzarsi per la presentazione di progetti di attività formative) Istruzioni

Dettagli

Avvio di Internet ed esplorazione di pagine Web.

Avvio di Internet ed esplorazione di pagine Web. Incontro 1: Corso di aggiornamento sull uso di internet Avvio di Internet ed esplorazione di pagine Web. Istituto Alberghiero De Filippi Via Brambilla 15, 21100 Varese www.istitutodefilippi.it Tel: 0332-286367

Dettagli

Programmazione a Oggetti Modulo B

Programmazione a Oggetti Modulo B Programmazione a Oggetti Modulo B Progetto Dott. Alessandro Roncato 4/10/2011 Progetto Da svolgere singolarmente Scadenza consegna: una settimana prima dello scritto; Valutazione in base a: Corretta compilazione

Dettagli

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014) Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014) Il software per gli esami ICON può essere eseguito su qualunque computer dotato di Java Virtual Machine aggiornata.

Dettagli

Lettore di badge Nexus

Lettore di badge Nexus Lettore di badge Nexus Lettore di tessere magnetiche Nexus Benvenuti nella guida del lettore di tessere magnetiche per PC Nexus. Nexus BadgeReader - 2001-2004 Nexus Technologies s.r.l. Firenze Italia pag.

Dettagli

GESTIONE DEI PROCESSI

GESTIONE DEI PROCESSI Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto

Dettagli

Client - Server. Client Web: il BROWSER

Client - Server. Client Web: il BROWSER Client - Server Client Web: il BROWSER Il client Web è un applicazione software che svolge il ruolo di interfaccia fra l utente ed il WWW, mascherando la complessità di Internet. Funzioni principali Inviare

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Installazione SOFTWARE JDK ECLIPSE 03/03/2011 2 ALGORITMI E PROGRAMMI PROBLEMA ALGORITMO PROGRAMMA metodo risolutivo linguaggio di

Dettagli

2.0 Gli archivi. 2.1 Inserire gli archivi. 2.2 Archivio Clienti, Fornitori, Materiali, Noleggi ed Altri Costi. Impresa Edile Guida all uso

2.0 Gli archivi. 2.1 Inserire gli archivi. 2.2 Archivio Clienti, Fornitori, Materiali, Noleggi ed Altri Costi. Impresa Edile Guida all uso 2.0 Gli archivi All interno della sezione archivi sono inserite le anagrafiche. In pratica si stratta di tutti quei dati che ricorreranno costantemente all interno dei documenti. 2.1 Inserire gli archivi

Dettagli

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti 13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.

Dettagli

1. Le macro in Access 2000/2003

1. Le macro in Access 2000/2003 LIBRERIA WEB 1. Le macro in Access 2000/2003 Per creare una macro, si deve aprire l elenco delle macro dalla finestra principale del database: facendo clic su Nuovo, si presenta la griglia che permette

Dettagli

Guida alla registrazione on-line di un DataLogger

Guida alla registrazione on-line di un DataLogger NovaProject s.r.l. Guida alla registrazione on-line di un DataLogger Revisione 3.0 3/08/2010 Partita IVA / Codice Fiscale: 03034090542 pag. 1 di 17 Contenuti Il presente documento è una guida all accesso

Dettagli