Gestione dei Progetti Software 2 (a.a. 204/05) - Lezione 4 1 Il package java.awt Gestione dellI/O orientato alla grafica: le finestre Sviluppo di interfacce utente grafiche indipendenti dalla piattaforma: astrazione delle caratteristiche comuni Le classi di java.awt : - contenitori - controlli - gestori di layout
Gestione dei Progetti Software 2 (a.a. 204/05) - Lezione 4 2 Concetti fondamentali sulle finestre (1) -AWT definisce una gerarchia di classi di finestre in cui ogni livello prevede una maggiore funzionalità e specificità. - Le classi di finestre più comuni sono Panel e Frame -In cima alla gerarchia delle classi di AWT si trova la classe Component, che incapsula tutti gli atributi di un componente visivo: tutti gli elementi di interfaccia utente che compaiono sullo schermo sono derivati da sottoclassi di Component
Gestione dei Progetti Software 2 (a.a. 204/05) - Lezione 4 3 Concetti fondamentali sulle finestre (2) - Component è una classe astratta che definisce una gran varietà di metodi per gestire: eventi posizionamento e dimensionamento delle finestre visualizzazione e rivisualizzazione degli oggetti grafici scelta dei colori di sfondo e del font di scrittura
Gestione dei Progetti Software 2 (a.a. 204/05) - Lezione 4 4 Gerarchia delle classi AWT Component Window Container Panel Frame TextField TextArea Checkbox Scrollbar List Label Dialog Button Canvas FileDialog
Gestione dei Progetti Software 2 (a.a. 204/05) - Lezione 4 5 Metodi di (ri)visualizzazione public void paint(Graphics g) visualizza il contenuto della finestra allinterno dellambiente grafico g void repaint( ) fa in modo che lambiente run-time esegua una chiamata di update( ), che a sua volta chiama paint( ) void show( ) visualizza la finestra void hide( ) nasconde la finestra
Gestione dei Progetti Software 2 (a.a. 204/05) - Lezione 4 6 JAVA e Internet: documenti attivi DOCUMENTI Server elementi passivi elementi attivi: Applet Client SICUREZZA + PORTABILITA Bytecode e sistema run-time
Gestione dei Progetti Software 2 (a.a. 204/05) - Lezione 4 7 Applet Piccola applicazione con limitato accesso alle risorse del client Legame con HTML: il tag Applet per eseguire applet JAVA Accesso via Internet, istallazione ed esecuzione automatica come parte di un documento web Struttura differente rispetto alle normali applicazioni Eredità da Panel : una Applet è una finestra che esegue codice import java.awt.*; import java.applet.*; class AppletHelloWorld extends Applet { public void paint(Graphics g) { g.drawString(Hello, www world, 20, 20); }
Gestione dei Progetti Software 2 (a.a. 204/05) - Lezione 4 8 Esecuzione di Applet Visualizzatore di applet: Appletviewer (fornito con JDK) Browser web JAVA-compatibile (HotJava, Netscape Communicator, etc.) Documenti HTML con tag applet per lanciare lesecuzione Le applet non hanno bisogno di main Interfaccia grafica fornita da AWT Esecuzione event-driven: risposta rapida agli eventi e restituzione del controllo
Gestione dei Progetti Software 2 (a.a. 204/05) - Lezione 4 9 Ciclo di vita di unapplet SISTEMA RUN-TIME init start stop destroy caricamento visita o Rivisita della pagina passaggio ad altre pagine uscita
Gestione dei Progetti Software 2 (a.a. 204/05) - Lezione 4 10 Struttura di unapplet Generalmente si realizza unapplet estendendo la classe Applet e ridefinendo i metodi: in Applet init( ) start( ) stop( ) destroy( ) in Component paint( ) update( )
Gestione dei Progetti Software 2 (a.a. 204/05) - Lezione 4 11 Scheletro di unapplet import java.awt.*;// SCHELETRO DI UNA APPLET import java.applet.*; /* */ public class AppletSkel extends Applet { public void init( ) { // chiamato sempre per primo // operazioni di inizializzazione } public void start( ) { // chiamato ogni volta che lapplet (ri)parte // parte o riparte lesecuzione } public void stop( ) { // chiamato quando lapplet viene bloccata // operazioni per sospendere lesecuzione } public void destroy( ) { // ultimo chiamato: lapplet termina // operazioni terminali } public void paint(Graphics g ) { // chiamato per visualizzare lapplet // mostra il contenuto della finestra }
Gestione dei Progetti Software 2 (a.a. 204/05) - Lezione 4 12 Metodi della classe Applet Metodi relativi ai comandi HTML URL getCodeBase( ) rest. lURL dellapplet URL getDocumentBase( ) rest. lURL del documento HTML che lha chiamata String getParameter(String nomePar) rest. il parametro associato a nomePar Metodi per caricare/eseguire video e audio AudioClip getAudioClip(URL url) rest. un oggetto che incapsula un brano Image getImage(URL url) rest. un oggetto che incapsula unimmagine void play(URL url) esegue il brano Metodi relativi allApplet void showStatus(String str) mostra una stringa nella barra di stato del browser void resize(Dimension dim) ridimensiona lapplet secondo le dimensioni specif. bool isActive( ) rest. true se lapplet è stata avviata, false se è stata arrestata
Gestione dei Progetti Software 2 (a.a. 204/05) - Lezione 4 13 Pagine Web e Applets JAVA Le pagine web contengono oggetti multimediali (testo, video, suoni), collegamenti ipertestuali, e applet I browser JAVA-compatibili consentono di caricare, verificare ed eseguire applet JAVA Le librerie standard di JAVA forniscono supporto per le funzionalità tipiche delle applet - Applet API (Application Programming Interface) - Comunicare con altri computer su Internet (operazioni Tcp/Ip e URL) - Elaborare grafica (operazioni di disegno e immagini sullo schermo ) - Gestire la GUI (manipolare finestre, bottoni, etc., tramite AWT) - Eseguire effetti sonori
Gestione dei Progetti Software 2 (a.a. 204/05) - Lezione 4 14 Inserire unapplet in una pagina web Arthurs Home Page Welcome to my home page! This page is still under construction Server Client File di comandi HTML Internet Web browser
Gestione dei Progetti Software 2 (a.a. 204/05) - Lezione 4 15 Specificare parametri per applet da HTML Personalizzare unapplet Modificarne gli aspetti Usarla in modi differenti Due Animazioni Two animations using the same applet
Gestione dei Progetti Software 2 (a.a. 204/05) - Lezione 4 16 Creare una Home Page Creare un file chiamato index.html usando un qualunque editore di testo Inserire nel file la lista delle direttive HTML Copiare i files dellapplet da inserire nella Home Page nella stessa directory index.html ImageLoop.java ImageLoop.class duke duke1.gif duke10.gif
Gestione dei Progetti Software 2 (a.a. 204/05) - Lezione 4 17 Editori HTML Le versioni più recenti dei browser web contengono editori speciali per documenti HTML, in cui si opera direttamente sullaspetto finale della pagina (metafora WYSIWYG) La creazione di pagine HTML è facilitata dalla possibilità di caricare pagine esistenti in formato source, e di modificarle anche con luso di taglia/incolla