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)