Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 51 Applet configurabili Grazie alla sezione parametri aggiuntivi del comando di HTML è possibile.

Slides:



Advertisements
Presentazioni simili
Java base V: La gestione delle Eccezioni
Advertisements

Unit à E4 Applet. Obiettivi Saper progettare e realizzare Applet Java allinterno di pagine HTML Comprendere le interazioni tra il browser e lapplet Saper.
Oggetti Java.
Applet Java.
Informatica Recupero debito quarto anno Terzo incontro.
Unit à E3 Eventi. Obiettivi Conoscere il concetto di evento e gestore di evento Conoscere i pulsanti in Swing e la gestione dellevento clic Saper gestire.
Liste di Interi Esercitazione. Liste Concatenate Tipo di dato utile per memorizzare sequenze di elementi di dimensioni variabile Definizione tipicamente.
Le gerarchie di tipi.
LIP: 19 Aprile Contenuto Soluzione Compitino Tipo di dato MultiSet, estensione con sottoclasse.
1 Le gerarchie di tipi: implementazioni multiple e principio di sostituzione.
LIP: 1 Marzo 2005 Classe Object e Vettori. Partiamo da Lesercizio dellultima esercitazione realizzato tramite array Vedremo come si puo fare in modo piu.
Java2 Esercitazioni del corso di Sistemi Informativi Marina Mongiello
Fondamenti di Informatica
S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele.
Modulo Object Oriented Programming (Linguaggio Java)
Microsoft Gif Animator Sintetica descrizione mediante immagini di principali opzioni vedi help di Gif Animator per informazioni più complete.
Programmazione ad Eventi
JavaScript Laboratorio di Applicazioni Informatiche II mod. A.
Applet Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA Uff
Fisica Computazionale I - 51 OPERAZIONI DI INPUT/OUTPUT Le operazioni di input/output sono estremamente complesse perche' implicano una sostanziale interazione.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
Grafica 2D in Java IGEA
1 Eventi/2 Più movimento alle classi. 2 Eventi Java Modo per intercettare il verificarsi di certe condizioni / azioni e fare in modo che venga eseguito.
Esercizi di grafica ….
1 Grafica ed eventi/2 Più movimento alle classi. 2 Esercizio n.1 Realizzare una applicazione che permette il trascinamento di una ellissi allinterno di.
Più movimento alle classi
Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 71 Uso dellinterfaccia Runnable interface Runnable { public void run ( ); } Linterfaccia.
Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 6 1 Programmi concorrenti: quanto è lungo un millisecondo? In un normale personal computer.
Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 81 Gestione dei colori La gestione dei colori in AWT consente di specificare un qualunque.
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.
Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 1 JAVA e Internet: il World Wide Web Internet: milioni di computer collegati fra di loro attraverso.
Programmazione II: Tecniche Avanzate. (A.A. 1999/2000) - Lezione 6 1 Estensione di classi: il Contratto INTERFACCIA E REALIZZAZIONE Che cosa realizza una.
AA2003/04 © M.A. Alberti Programmazione Interfacce 1 Programmazione Corso di laurea in Informatica.
CAPITOLO 1 JAVA: UN TUFFO NEL LINGUAGGIO E NELL'AMBIENTE.
Tecniche di Progetto (a.k.a. Design Patterns). Progettazione Object-Oriented Passi della prassi Definizione delle classi Determinazione delle responsabilità
Progetto di applicazioni grafiche. Disegno di forme complesse Prassi : un classe per ciascuna forma Progetta la forma individuando le componenti base.
Ping Pong. PingPongComponent.java Interfaccia pubblica della componente public class PingPongComponent extends JComponent { // crea una component da includere.
Progettare siti con ASP.net
GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori. Lapproccio classico consiste nellinse- rire controlli.
JAVA E LA GRAFICA L’architettura Java è graphics-ready
APPLICAZIONI & APPLET Java è un ottimo linguaggio per costruire applicazioni anche non per Internet anche non grafiche ma si è diffuso storicamente, e.
Introduzione alla programmazione Object Oriented
SY-MAP tools Guida allutilizzo. SY-MAP tools I SY-MAP tools permettono di collegare informazioni memorizzate su un database e elementi grafici dei file.dgn.
Programmazione concorrente
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Gestionale A.A. 2003/2004.
BIOINFO3 - Lezione 11 installare moduli perl Mysql su windows: ppm install dbi ppm install dbd-mysql.
1 Applet ed HTML Fondamenti di Informatica Corso D.
Esercizi Swing.
Concorrenza 1 Conto corrente Nella famiglia Giambietti non ci sono grossi problemi economici. Infatti il padre, Enea, di professione artista free-lance,
Introduzione. Introduzione Un’applet Java: Una applet ("applicazioncina") è una applicazione non autonoma, ma pensata per far parte di una pagina Internet.
Esercitazione Ereditarietà Polimorfismo. Entita’ Geometrica PuntoCerchioPoligono TriangoloQuadrilatero Rettangolo Quadrato.
Java gestione eventi introduzione. La gestione degli eventi Ci sono 3 oggetti interessati alla g. d. e.: L’oggetto interessato (event source) ad esempio.
Applet Un applet o un’applet?.
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Laboratorio di Servizi Web - servlet - Ardissono 1 Java Servlet API package javax.servlet: include classi e interfacce di gestione di servlet indipendenti.
Interfacce grafiche Capitolo 27 marzo 2004 Interfacce grafiche.
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
Timer Animazioni.
Capitolo 12 Thread Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Tecnologie lato Client: Applet © 2005 Stefano Clemente Stefano Clemente
1 Eccezioni in Java. 2 Ricordiamo che 4 una procedura può terminare –normalmente, ritornando un risultato –in modo eccezionale ci possono essere diverse.
Gestione dei thread in Java
Esercitazione  obiettivo: scrivere una applicazione per il gioco “Centra Bersaglio”  metodo individuazione e definizione delle classi necessarie.
LIP: 22 Marzo 2005 Eccezioni. Eccezioni-Richiami Come si definiscono eccezioni Come si lanciano Come si gestiscono (gestione esplicita o di default)
LIP: 2 Maggio 2008 Classi Astratte. Cos’e’ una Classe Astratta una classe astratta e’ un particolare tipo di classe permette di fornire una implementazione.
Esercitazione sull’ ordinamento 20 maggio 2003
13/08/02Input 1 Interagire con il computer Da tastiera Da riga di comando Funzioni di conversione.
Lezione 2 : Basi del linguaggio Variabili. Come visto nella lezione 1 le classi registrano il proprio stato nelle variabili  int cadenza = 0;  int velocita.
Introduzione all’Ereditarietà Pietro Palladino. Richiami UML Classe: descrizione di un insieme di oggetti software con caratteristiche simili Definisce.
Transcript della presentazione:

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 51 Applet configurabili Grazie alla sezione parametri aggiuntivi del comando di HTML è possibile configurare lapplet Il metodo getParameter( ) consente di leggere il valore di un certo parametro direttamente dal file HTML

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 52 Esempio: unapplet che disegna varie forme public class GraphicsApplet extends Applet { Font appFont; Color appColor; String appShape; String appText; Image image; public Color colorFromString(String s, Color defaultColor ) { Integer i; try { i = Integer.valueOf(s, 16); return new Color(i.intValue( )); } catch (NumberFormatException e) { if (s.equalsIgnoreCase(red)) { return Color.red; } else if (s.equalsIgnoreCase(green)) { return Color.green; } else if (s.equalsIgnoreCase(blue)) { return Color.blue; } else return defultColor; } // CONTINUA NELLA PROSSIMA DIAPOSITIVA

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 53 Esempio: unapplet che disegna varie forme (continua) public void init ( ) { String arg = getParameter(COLOR); appFont =new Font(Helvetica, Font.BOLD, 14); if (arg != null) appColor = colorFromString(arg, Color.red); appShape = getParameter(SHAPE); if (appShape == null) appShape = Line; appText = getParameter(TEXT); if (appText == null) appText = Graphics; arg = getParameter(IMAGE); if (arg == null) arg = images/duke.gif; image = getImage (getDocumentBase( ), arg); } // CONTINUA NELLA PROSSIMA DIAPOSITIVA

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 54 Esempio: unapplet che disegna varie forme (continua 2) public void paint (Graphics g) { Rectangle r = bounds( ); g.setColor(appColor); if (appShape.equalsIgnoreCase(Line) { g.drawLine(0, 0, r.width, r.height); } else if (appShape.equalsIgnoreCase(Rectangle) { g.drawRectangle(0, 0, r.width-1, r.height-1); } else if (appShape.equalsIgnoreCase(Image) { g.drawImage(image, 0, 0, r.width, r.height, this); } else if (appShape.equalsIgnoreCase(String) { g.setFont(appFont); g.drawCenteredString(appText, g, r); }

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 55 Esempio: unapplet che disegna varie forme (continua 3) - Uso in diversi testi HTML Disegna una linea diagonale verde Disegna un rettangolo blu Stampa una stringa in rosso

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 56 Aggiungere controlli interattivi Applet estende Panel, quindi unapplet è un contenitore Usare add( ) per aggiungere nellapplet componenti interattivi (es., bottoni) Implementare la o le interfacce listener per rispondere agli eventi provenienti dai componenti interattivi public class UIApplet extends Applet implements ActionListener { private Button bott; private String str; public void init( ) { bott = new Botton(Show); str = getParameter(SCRITTA); add (bott); } public void actionPerformed(ActionEvent a) { showStatus(str); }

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 57 Animazioni Mostrare sequenze di immagini simili con un certo intervallo di tempo fra luna e laltra (frame rate) Ciclo di base: finché (ancora_immagini) { mostraImmaginiCorrente( ); sleep (un_certo_tempo); avanzaAllaProssimaImmagine( ); } Scelta critica: il frame rate determina la percezione più o meno naturale dellanimazione Effetto di sleep: sospende lesecuzione dellapplet e di conseguenza arresta ogni altra attività. Scelta alternativa: gestire il ciclo di animazione con un thread a sé stante

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 58 Prototipo di realizzazione di una animazione public class AnimationApplet extends Applet implements Runnable { Thread animator; public void init( ) { animator = new Thread(this); } public void start( ) { if (animator.isAlive( )) { animator.resume( ); } else {animator.start( ); } } public void stop ( ) { animator.suspend( ); } public void destroy ( ) { animator.stop( ); }

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 59 realizzazione di una animazione (continua) public void run( ) { while (true) { repaint ( ); Thread.sleep(200); // avanza alla prossima immagine } public void paint(Graphics g) { // disegna limmagine corrente }

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 510 Aggiungere una classe che guida lanimazione class Animation { protected Applet app; protected void init (Applet app) { this.app = app; } public abstract void advance ( ); public abstract void paintFrame (Graphics g); } La classe RectangleAnimation gestisce il disegno di un rettangolo in posizioni random allinterno dellapplet. Il metodo advance( ) determina la nuova immagine da disegnare calcolando le nuove coordinate del rettangolo in maniera random.

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione disegnare rettangoli class RectangleAnimation extends Animation { private int cx = 0; private int cy = 0; public void advance ( ) { Rectangle bounds = app.bounds( ); cx = (Math.random( ) * 1000) % bounds.width; cy = (Math.random( ) * 1000) % bounds.height; } public void paintFrame (Graphics g) { g.setColor(Color.blue); g.drawRect(cx, cy, 50, 50); }

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione istanziare il prototipo di animazione per disegnare rettangoli che si spostano in maniera casuale public class AnimationApplet extends Applet implements Runnable { Thread animator; Animation animation; public void init( ) { animator = new Thread(this); animation = new RectangleAnimation( ); animation.init(this); } public void start( ) { if (animator.isAlive( )) { animator.resume( ); } else {animator.start( ); } } public void stop ( ) { animator.suspend( ); }

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione (continua) public void destroy ( ) { animator.stop( ); } public void run( ) { while (true) { repaint ( ); Thread.sleep(200); animation.advance( ); } public void paint(Graphics g) { animation.paintFrame(g); }

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 514 Esercizio: estensioni a RectangleAnimation Configurabilità: parametri per variare - il frame rate - il tipo di immagine da visualizzare - la possibilità di indicare la sequenza delle posizioni Aggiunta di controlli interattivi: - bottoni per gestire lanimazione (avanti, indietro, pausa, moviola etc.) - uso del mouse per inserire a mano la sequenza dei punti

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 515 Dal come fare? al che cosa fare? IL FATTORE UMANO NEL SOFTWARE INTERATTIVO La tecnologia odierna consente di fornire le applicazioni di interfacce avanzate con limpiego di grafica avanzata: maggiori opportunità Unapplicazione amichevole deve essere semplice dal punto di vista dellutente e facile da usare: le prestazioni di un sistema oggi dipendono fortemente da come viene usato Deve comportarsi esattamente come lutente si aspetta: progettare una applicazione usabile richiede maggiori sforzi e maggiori costi

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 516 Perché progettare linterazione? La lista degli apparecchi interattivi è praticamente infinita: computer, telefoni cellulari, fotocopiatrici, agende elettroniche, telecomandi, videoregistratori.... Quanti apparecchi sono effettivamente usabili? Quando un prodotto viene ingegnerizzato, generalmente ci si preoccupa di dotarlo delle funzionalità previste, ignorando i problemi che incontreranno gli utenti

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 517 Interactive System Engineering Il successo di una applicazione interattiva dipende da quanto essa risulta gradita agli utenti. Linteractive system engineering ha perciò 4 attività di base: - PIANIFICAZIONE ACCURATA - SENSIBILITA PER LE ASPETTATIVE DEGLI UTENTI - PROTOTYPING E REVISIONE DEL PROGETTO - TESTING DI USABILITA Quando unapplicazione è ben progettata, la sua interfaccia dovrebbe scomparire, lasciando lutente a fare semplicemente il suo lavoro Vaga nozione di amichevolezza contro obiettivi ben definiti e misurabili Una progettazione che tenga conto di questi obiettivi ha dei costi aggiuntivi

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 518 I punti chiave nel progettare linterazione Gli utenti dovrebbero essere coinvolti, o almeno tenuti in considerazione, durante lo sviluppo del progetto Gli obiettivi di usabilità dovrebbero essere identificati in partenza, chiaramente documentati ed accettati Il processo deve essere necessariamente reiterato