Laboratorio di IUM - Gianpiero Di Blasi

Laboratorio di IUM
Lezione 0
Introduzione
Di Blasi Gianpiero - D.M.I. - Università di Catania
Java, Swing e Java2D (1)
●
●
●
Java è ormai diventato uno standard di sviluppo
Attualmente la maggior parte delle applicazioni
sono “visuali”, ovvero si presentano all'utente
tramite una GUI, Graphical User Interface
(Interfaccia Utente Grafica)
Java permette di creare applicazioni visuali
altamente professionali
Java, Swing e Java2D (2)
●
●
●
La grafica 2D e l'elaborazione delle immagini è
uno dei campi più interessanti dell'informatica
Java mette a disposizione una delle più potenti
librerie grafiche disponibili sul mercato
Per “potente” si intende potenza espressiva, ma
anche dal punto di vista delle performance la
libreria grafica di Java è molto “potente”
Addentriamoci in Swing
●
Swing è l'API Java che permette la creazione di
interfacce visuali
●
Si basa sul modello MVC (Model/View/Control)
●
Caratteristiche:
–
–
–
altamente personalizzabile ed estendibile
multi-piattaforma
“leggero”
Addentriamoci in Java2D
●
Java2D è l'API Java che permette il disegno di grafica
2D all'interno di applicazioni Java
●
Serve anche per il disegno all'interno di immagini
●
Con Java2D si può:
–
–
–
–
disegnare poligoni, curve, spezzate
applicare trasformazioni
disegnare del testo
applicare qualsiasi stile, spessore e modalità di disegno e
scrittura possibile
Cosa si può fare con Swing e Java2D?
●
Swing e Java2D supportano un ampio range di
applicazioni:
–
–
–
–
●
qualsiasi applicazione “gestionale”
applicazioni grafiche
applicazioni di elaborazione delle immagini
videogame
Vediamo qualche esempio concreto...
Maestro
JBuilder
NeoOffice/J
EIOffice
Le alternative a Swing
●
AWT
–
●
ne faremo un accenno, ma non la useremo
assolutamente (troppo vecchia)
SWT
–
–
API grafica sviluppato dal team di Eclipse
molti la ritengono superiore a Swing, ma non è un vero
“standard” e non è implementato su tutte le piattaforme
Cosa Serve (Hardware/Software)?
●
Windows/Linux
–
–
●
MacOS X
–
●
processore: 1Ghz
memoria: 128MByte
iBook G4/900Mhz
Software
–
Java2 sdk 1.5.0
Cosa Serve (Documentazione)? (1)
●
●
●
Documentazione Java (assolutamente necessaria)
Esiste anche un tutorial Java (in inglese)
scaricabile dal sito SUN
http://www.dmi.unict.it/~gdiblasi/didattica
Cosa Serve (Documentazione)? (2)
●
Libri (consigliati):
–
Cay S. Horstmann – Gary Cornell
●
●
–
Pearson Education Italia
–
Cay S. Horstmann
●
–
●
Core Java 2 – Fondamenti
Core Java 2 – Tecniche Avanzate
Concetti di informatica e fondamenti di Java JDK5.0
Apogeo Education
continua...
Cosa Serve (Documentazione)? (3)
●
Segue:
–
Harvey M. Deitel – Paul J. Deitel
●
●
–
Java Fondamenti di programmazione
Java Tecniche avanzate di programmazione
Apogeo Education
Cosa Faremo? (1)
●
Modulo 1: Introduzione alle Swing e Java2D
–
Lezione 1: I Frame
–
Lezione 2: Introduzione a Java2D
–
Lezione 3: La gestione degli eventi
–
Lezione 4: Componenti Swing base
Cosa Faremo? (2)
●
Modulo 2: Swing e Java2D avanzato
–
–
●
Lezione 5: Tecniche avanzate di Java2D
Lezione 6: Componenti Swing avanzati
Modulo 3: Concetti avanzati (opzionali)
–
–
Lezione 7: Multi-threading
Lezione 8: L'AWT che serve
Perché Swing e Java2D?
●
Motivazioni temporali:
–
–
–
●
è più facile di altre API
si impara più in fretta
è basato su Java (non bisogna prima imparare C/C++ o
qualche altro linguaggio)
Motivazioni didattiche:
–
–
si vogliono insegnare i principi tipici di una API
grafica non “una particolare API”
lascia nascosti molti dettagli superflui in un corso di
primo livello
Esempi
●
Tutti gli esempi sono stati testati su architetture
–
–
–
●
AMD e WindowsXP HE
AMD e SuSE Linux
PowerPC G4 e MacOS X
È possibile che su altre architetture gli esempi
non funzionino correttamente, segnalatemi
eventuali problemi (e magari scrivete le patch per
risolverli)
Esami
●
La prova d'esame prevede un test di verifica in
laboratorio (90 minuti di tempo), in cui si
richiederà:
–
–
–
–
–
la creazione di una GUI COMPLESSA
l'implementazione di qualche funzionalità 2D e/o la
gestione di qualche evento
per raggiungere il 18 bisogna ALMENO realizzare
TUTTA la GUI secondo TUTTE le specifiche richieste
i restanti 12 punti verranno assegnati in funzione
dell'implementazione degli eventi e della grafica
per la Lode bisognerà completare la prova entro 60 minuti
Studente avvisato, mezzo salvato
●
Materie e concetti “propedeutici”:
–
–
●
Programmazione 1 e 2 (sapete cosa è un
java.lang.NullPointerException?)
Formazione Analitica, Discreta, Logica e concetti di
geometria piana (sapete cosa è un trapezio isoscele?)
Per l'esame in laboratorio:
–
–
–
Serve il TESSERINO!
Serve l'ACCOUNT aggiornato di laboratorio!
Bisogna conoscere i PC e le tastiere del laboratorio
Scheduling delle lezioni
●
Date:
–
–
–
●
09/10, 10/10, 11/10
16/10, 18/10
23/10, 24/10
Ore: 17.00-19.30
Vediamo qualche esempio
SwingSet2
Napkin Look&Feel
Java2D
SuperPainter
(il nostro compagno d'avventura)