Sommario
Prefazione
Prima di cominciare
Capitolo 1
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
1.10
1.11
1.12
1.13
1.14
1.15
1.16
1.17
1.18
1.19
1.20
Introduzione
Semplice Input/Output con JOptionPane
Panoramica dei componenti di Swing
Visualizzare testo e immagini in una finestra
Campi di testo e gestione degli eventi con le classi innestate
Tipi di eventi della GUI e interfacce listener comuni
Come funziona la gestione degli eventi
JButton
Pulsanti che mantengono lo stato
JComboBox e uso di una classe interna anonima per la gestione degli eventi
JList
Liste a selezione multipla
Gestione degli eventi del mouse
Classi adapter
Sottoclasse di JPanel per disegnare con il mouse
Gestione degli eventi della tastiera
Gestori del layout
Usare i pannelli per gestire layout più complessi
JTextArea
Riepilogo
Autovalutazione
Risposte
Esercizi
Capitolo 2
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
Componenti della GUI: prima parte
Grafica e Java 2D™
Introduzione
Contesti e oggetti grafici
Controllo del colore
Controllo dei font
Disegnare linee, rettangoli e ovali
Disegnare archi
Disegnare poligoni e spezzate
API Java 2D
Riepilogo
Autovalutazione
Risposte
Esercizi
Deitel_VolII_SOMMARIO.indd VII
XIII
XXI
1
1
2
5
8
13
20
21
24
27
34
38
41
43
48
52
56
59
69
71
74
75
76
76
79
79
81
82
90
95
100
102
106
113
114
114
115
25/06/2008 13.27.15
VIII
Sommario
Capitolo 3
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
3.12
3.13
3.14
Gestione delle eccezioni
Introduzione
Panoramica sulla gestione delle eccezioni
Esempio: divisione per zero senza gestione delle eccezioni
Esempio: gestire le ArithmeticException e le InputMismatchException
Quando usare la gestione delle eccezioni
Gerarchia delle eccezioni di Java
Blocco finally
Gestione dello Stack
printStackTrace, getStackTrace e getMessage
Eccezioni concatenate
Dichiarare nuovi tipi di eccezioni
Precondizioni e postcondizioni
Asserzioni
Riepilogo
Autovalutazione
Risposte
Esercizi
Capitolo 4 File e stream
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
Introduzione
Gerarchia di dati
File e stream
La classe File
File di testo ad accesso sequenziale
Serializzare gli oggetti
Classi aggiuntive di java.io
Aprire file con JFileChooser
Riepilogo
Autovalutazione
Risposte
Esercizi
Capitolo 5
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
119
119
120
121
123
129
129
132
137
139
141
143
144
145
147
147
148
149
151
151
152
154
156
161
177
186
189
192
193
194
195
Strutture dati
199
Introduzione
Classi wrapper per i tipi primitivi
Autoboxing e auto-unboxing
Classi autoreferenzianti
Allocazione dinamica della memoria
Liste concatenate
Stack
Code
Alberi
Riepilogo
199
200
200
201
202
202
213
218
221
227
Deitel_VolII_SOMMARIO.indd VIII
25/06/2008 13.27.28
Sommario
Autovalutazione
Risposte
Esercizi
Capitolo 6
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
7.1
7.2
7.3
7.4
7.5
7.6
7.7
7.8
237
Introduzione
Applet di esempio forniti con il JDK
Un semplice applet Java: disegnare una stringa
Metodi del ciclo di vita di un applet
Inizializzare una variabile di istanza con il metodo init
Modello di sicurezza sandbox
Risorse web
Riepilogo
Autovalutazione
Risposte
Esercizi
237
237
243
248
249
251
252
252
253
253
253
Multimedia: applet e applicazioni
Introduzione
Caricare, visualizzare e ridimensionare immagini
Animare una serie di immagini
Mappe di immagini
Caricare e riprodurre clip audio
Riprodurre video e altri media con Java Media Framework
Riepilogo
Risorse web
Autovalutazione
Risposte
Esercizi
Capitolo 8
8.1
8.2
8.3
8.4
8.5
8.6
8.7
8.8
8.9
8.10
228
229
229
Introduzione agli applet Java
Capitolo 7
Componenti della GUI: seconda parte
Introduzione
JSlider
Finestre: note aggiuntive
Usare i menu con i frame
JPopupMenu
Pluggable look-and-feel
JDesktopPane e JInternalFrame
JTabbedPane
Gestori del layout: BoxLayout e GridBagLayout
Riepilogo
Autovalutazione
Risposte
Esercizi
Deitel_VolII_SOMMARIO.indd IX
IX
255
255
256
259
265
268
271
277
277
278
279
279
281
281
282
286
287
295
299
303
307
309
323
324
324
325
25/06/2008 13.27.28
X
Sommario
Capitolo 9
9.1
9.2
9.3
9.4
9.5
9.6
9.7
9.8
9.9
9.10
9.11
9.12
9.13
Multithreading
Introduzione
Stati dei thread: ciclo di vita di un thread
Priorità e schedulazione dei thread
Creare ed eseguire i thread
Sincronizzazione dei thread
Relazioni produttore/consumatore senza sincronizzazione
Relazione produttore/consumatore: ArrayBlockingQueue
Relazione produttore/consumatore con sincronizzazione
Relazione produttore/consumatore: buffer con numero finito di elementi
Relazione produttore/consumatore: le interfacce Lock e Condition
Multithreading e GUI
Altre classi e interfacce in java.util.concurrent
Riepilogo
Autovalutazione
Risposte
Esercizi
Capitolo 10 Accedere alle basi di dati con JDBC
10.1
10.2
10.3
10.4
10.5
10.6
10.7
10.8
10.9
10.10
10.11
10.12
10.13
10.14
10.15
Introduzione
Basi di dati relazionali
Panoramica sulle basi di dati relazionali: la base di dati books
SQL
Istruzioni per installare MySQL e MySQL Connector/J
Istruzioni per creare un utente MySQL
Creare la base di dati books in MySQL
Manipolare le basi di dati con JDBC
Interfaccia RowSet
Java DB/Apache Derby
PreparedStatement
Stored procedure
Le transazioni
Riepilogo
Risorse web e letture consigliate
Autovalutazione
Risposte
Esercizi
Capitolo 11 Applicazioni web: prima parte
11.1
11.2
11.3
11.4
11.5
Introduzione
Semplici transazioni HTTP
Architettura delle applicazioni multilivello
Tecnologie web di Java
Creare ed eseguire una semplice applicazione in Java Studio Creator 2
Deitel_VolII_SOMMARIO.indd X
327
327
329
331
333
338
347
355
358
365
373
380
396
397
397
398
399
401
401
402
403
407
416
417
418
419
437
440
442
458
459
460
460
462
463
463
465
465
466
468
469
473
25/06/2008 13.27.29
Sommario
11.6
11.7
11.8
11.9
Componenti JSF
Gestione delle sessioni
Riepilogo
Risorse web
Autovalutazione
Risposte
Esercizi
Capitolo 12 Applicazioni web: seconda parte
12.1
12.2
12.3
12.4
12.5
12.6
12.7
490
506
537
537
538
539
539
541
Introduzione
Accedere a una base di dati da un’applicazione web
Componenti JSF Ajax-enabled
AutoComplete Text Field e form virtuali
Componente Map Viewer di Google Maps
Riepilogo
Risorse web
Autovalutazione
Risposte
Esercizi
541
542
555
557
568
580
580
581
582
582
Capitolo 13 Web service JAX-WS, Web 2.0 e mashup
583
13.1
13.2
13.3
13.4
13.5
13.6
13.7
13.8
13.9
13.10
Introduzione
Nozioni base sui web service in Java
Creare, pubblicare, provare e descrivere un web service
Usare un web service
SOAP
Gestione delle sessioni nei web service
Usare un web service con una base di dati da un’applicazione web
Passare un oggetto di un tipo definito dall’utente a un web service
Riepilogo
Risorse web
Autovalutazione
Risposte
Esercizi
Capitolo 14 Formattazione dell’output
14.1
14.2
14.3
14.4
14.5
14.6
14.7
14.8
Introduzione
Stream
Formattare l’output usando il metodo printf
Stampare numeri interi
Stampare numeri in virgola mobile
Stampare stringhe e caratteri
Stampare date e ore
Altri caratteri di conversione
Deitel_VolII_SOMMARIO.indd XI
XI
583
586
586
598
608
610
627
637
648
649
650
651
651
653
653
653
654
654
656
657
658
661
25/06/2008 13.27.29
XII
Sommario
14.9
14.10
14.11
14.12
14.13
14.14
Stampare usando la larghezza e la precisione del campo
Usare i flag nella stringa di formato del metodo printf
Stampare con gli indici dei parametri
Stampare stringhe e sequenze di escape
Formattare l’output con la classe Formatter
Riepilogo
Autovalutazione
Risposte
Esercizi
Appendice A GroupLayout
A.1
A.2
A.3
A.4
Introduzione
Elementi di base su GroupLayout
Creare un ColorChooser
Risorse web
Appendice B Java Desktop Integration Components (JDIC)
B.1
B.2
B.3
B.4
B.5
B.6
663
665
669
670
670
671
672
673
673
675
675
675
676
687
689
Introduzione
Splash screen
Classe Desktop
Tray icon
Progetti pilota JDIC
Demo JDIC
689
689
691
693
694
694
Appendice C Mashup
695
Indice analitico
703
Deitel_VolII_SOMMARIO.indd XII
25/06/2008 13.27.29