Java Avanzato 1. Introduzione agli IDE: Eclipse • • • • • • • • A cosa serve un IDE Installazione e configurazione di Eclipse L'interfaccia grafica: le viste e le " perspective" Creare un nuovo progetto Creare componenti di progetto Le viste Il debug con Eclipse Esportare il progetto: il tool JAR 2. Introduzione all'UML • • • A cosa serve l'UML I tipi di diagrammi I diagrammi su un esempio concreto 3. Le Stringhe • • • • • Prelevare un carattere, ricerca dell'indice del carattere Ricerca sottostringa, prefisso, suffisso Ritaglio di una stringa, split e concatenazione Metodi di sostituzione Esercizi 4. Come contenere gli oggetti • • • • Generici e contenitori type-safe Visualizzazione e stampa Il framework Collection ◦ Le interfacce Collection, List e Set ◦ Le mappe: Map e SortedMap ◦ L'interfaccia Comparable Esercizi: lista di nomi, ordinamento, associazione età 5. Le date e le formattazioni • • • • • Gestire le date in Java La classe Calendar Formattare le date: SimpleDateFormat Formattare i numeri: DecimalFormat I termini locali: DateFormatSymbols 6. Specialità di Java* • • • • • • • La classe Object e i metodi universali Informazioni sui tipi ◦ L'esigenza di RTTI ◦ La meta-classe Class Classi “wrapper” e autoboxing Metodi con argomenti variabili Classi e interfacce annidate ◦ Classi annidate statiche ◦ Classi annidate non-statiche (interne) ◦ Classi locali ◦ Classi anonime Il package Math: funzioni matematiche I tipi enumerativi ◦ Il costrutto Enum ◦ Riferimento ai valori rappresentativi ◦ I metodi values e valueOf ◦ Aggiungere membri ad una enumerazione 7. Esercitazione: il calendario con appuntamenti 8. Gestione dei file • • • • Il package java.io La classe File Verificare e creare directory Esercizi: la ricerca di file, analisi delle cartelle 9. Canali di Input e Output: • • • • • Tipi di InputStream Tipi di OutputStream I flussi a caratteri: Reader e Writer Esercizi: visualizzare file di testo Accesso libero al documento: RandomAccessFile 10. Lo standard I/O • • • • Leggere da standard input Gestire e ridirigere i tre canali standard Le classi PrintStream e PrintWriter Esercizi: creare uno strumento di debug 11. Serializzazione di oggetti • • • Gli Stream a oggetti La parola chiave transient Esercizi: una TO-DO list persistente 12. Accesso ai database con JDBC • • • • • • Impostare il connettore Accesso semplice al DB Interrogare il DB Analizzare il risultato di una query Sistemi più complessi: cenni di ORM Esercizi: rubrica su DB 13. Programmazione di rete* • • • Il package java.net e l'architettura client-server Le classi URL e Socket Esercizio: una chat testuale 14. Introduzione alla programmazione concorrente • • Velocità di esecuzione dell'applicazione Migliorare la progettazione del codice 15. Gestione dei thread • • • • • • • • Definizione dei compiti La classe Thread L'interfaccia Runnable Pausa con sleep Priorità nei thread Thread demoni Sincronizzazione tra thread Variabili volatili 16. Introduzione alle Swing • Un framework per l'interfaccia grafica 17. I componenti principali • • • • • • La classe JFrame e la struttura della finestra La classe JLabel: inserire etichette, immagini, con formattazione HTML Esercizi: un piccolo esempio I controlli testuali: JTextField, JPasswordFild, JTextArea I bottoni: JButton, JCheckBox, JRadioButton Le tendine: JComboBox e i modelli 18. Controllare la disposizione dei componenti • • • Gestione tramite BorderLayout Gestione tramite GridLayout Un layout-manager complesso: GroupLayout 19. Modello a eventi di Swing • • • • • • Il modello Event-Driven Tipi di eventi e di Listener Ascoltare le Action Ascoltare da tastiera Ascoltare il mouse Gli “adattatori” 20. Le tabelle • • • • Il componente JTable Il modello della tabella e i dati Le azioni di modifica La visualizzazione specializzata delle celle 21. Altri componenti grafici* • • • • • • Output grafico: JOptionPane Finestre modali: JDialog Pannelli e sottopannelli: JPanel, JTabbedPane Liste: JList Menu e tendine: JMenu, JMenuItem JFileChooser e JColorChooser * In base alla velocità del corso, questo argomento sarà trattato in maniera più o meno approfondita