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