SlideShare uma empresa Scribd logo
1 de 50
I Frame
La gerarchia dei Frame
La struttura di un Jframe(1)
La struttura di un Jframe(2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Pricipali metodi dei JFrame ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Esempio  MioFrame MioFrame1
Arricchire un Frame Non possiamo disegnare, scrivere o aggiungere Componenti direttamente al Frame. Tutto va inserito dentro il “contentPane”
Inserire un JComponent ,[object Object],[object Object],[object Object],[object Object]
La classe Graphics ed il metodo  paintComponent() ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
La classe Graphics ed il metodo paintComponent () ●  Chi chiama  paintComponent ? –  viene chiamato automaticamente ogni qualvolta sia necessario. Non deve essere chiamato manualmente ●  Per forzarne la chiamata usare il metodo: –  void  repaint (): forza il ridisegno della finestra ●  Quali azioni attivano il  paintComponent ? –  tutto ciò che provoca un ridisegno della finestra (ridimensionamento della finestra, riduzione ad icona, massimizzazione, sovrapposizione di finestre, ecc.)
La classe Graphics ed il metodo paintComponent () ●  Per lavorare il  paintComponent  ha bisogno di un oggetto  Graphics ●  Esso è la sua “memoria” e il suo “libretto di istruzioni” per eseguire i comandi di disegno che chiederemo nel nostro codice ●  Un  Graphics  (contesto grafico) viene creato dal  JComponent  appena deve essere disegnato la prima  volta
La classe Graphics ed il metodo paintComponent() ●  Graphics  mantiene le seguenti informazioni: –  l'oggetto sul quale si disegna –  il sistema di coordinate adottato per disegnare –  il colore di foreground (colore con cui disegnare) void setColor(Color c) –  il font usato per le stringhe e le sue proprietà –  il “clip” (ritaglio) –  la modalità di disegno (Paint o XOR) –  ……… .
Alcuni Metodi della classe paintComponent() ,[object Object],[object Object],[object Object]
Esempio ColoreSfondo
Testo e Font  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Esempio FontDisponibili
Inserimento Testo ,[object Object],[object Object],[object Object],[object Object]
Esempio Saluta
Disegni Per disegnare un segmento: –  void  drawLine (int x1, int y1, int x2, int y2): disegna una linea continua Per disegnare un punto: –  void  drawLine (int x1, int y1, int x1, int y1): disegna un punto
Disegni Per disegnare un poligono: –  void  drawPolygon (int[] x, int[] y, int npoints): ●  Per disegnare una spezzata: –  void  drawPolyline (int[] xCoord, int[] yCoord, int npoints)  ●  Per disegnare un arco: –  void  drawArc (int x, int y, int width, int height, int startAngle, int arcAngle)
Disegni Per disegnare rettangoli  –  void  drawRect (int x, int y, int width, int height): Per disegnare Ovali –  void  drawOval (int x, int y, int width, int height): Per disegnare rettangoli arrotondati: –  void  drawRoundRect (int x, int y, int width, int height, int arcWidth, int arcHeight)
Considerazioni finali sulle primitive di disegno Esistono una serie di metodi analoghi ai precedenti per il riempimento di forme: –  void  fillPolygon (Polygon p) –  void  fillPolygon (int[] x, int[] y, int npoints) –  void  fillArc (int x, int y, int width, int height, int startAngle, int arcAngle) –  void  fillRect (int x, int y, int width, int height) –  void  fillOval (int x, int y, int width, int height) –  void  fillRoundRect (int x, int y, int width, int height, int arcWidth, int arcHeight)
Riassunto ,[object Object],[object Object],[object Object],[object Object]
La gestione degli eventi ,[object Object],[object Object],[object Object],[object Object],[object Object]
Gestore degli eventi Applicativo Evento Azione Devo eseguire l’azione associata al bottone Chiama l’ascoltatore Esegue azione Listener
Come si sceglie il listener ,[object Object],[object Object]
Passi per la corretta gestione di un evento  ,[object Object],[object Object],[object Object],[object Object]
Le interface ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
L'interfaccia ActionListener ,[object Object],[object Object],[object Object]
Alcuni JComponent
ATTENZIONE!!!! ,[object Object],[object Object]
JButton  ,[object Object],[object Object],[object Object]
JCheckBox  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JRadioButton ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JRadioButton ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Caselle ed aree di testo ,[object Object],[object Object],[object Object],[object Object]
JTextField ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JTextArea  ,[object Object],[object Object],[object Object],[object Object],[object Object]
JTextArea ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Le etichette  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
I layout ,[object Object],[object Object],[object Object],[object Object]
Layout del flusso Componente 1 Componente 2 Componente 3
Layout del flusso ,[object Object],[object Object],[object Object]
Layout del flusso ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Layout dei bordi Componente North Componente  Center Componente South Comp. West Comp. East
Layout dei bordi ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Layout a Griglia Componente 1 Componente 2 Componente 4 Componente 6 Componente 5 Componente 3
Layout a Griglia ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Creazione di animazioni  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Immagini ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Mais conteúdo relacionado

Mais procurados

11 - Programmazione: Tipi di dato strutturati pt. 2
11 - Programmazione: Tipi di dato strutturati pt. 211 - Programmazione: Tipi di dato strutturati pt. 2
11 - Programmazione: Tipi di dato strutturati pt. 2Majong DevJfu
 
9 Altre Istruzioni Di I O
9   Altre Istruzioni Di I O9   Altre Istruzioni Di I O
9 Altre Istruzioni Di I Oguest60e9511
 
07 - Programmazione: Tipi di base e conversioni
07 - Programmazione: Tipi di base e conversioni07 - Programmazione: Tipi di base e conversioni
07 - Programmazione: Tipi di base e conversioniMajong DevJfu
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)STELITANO
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)STELITANO
 
Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)STELITANO
 
13 Puntatori E Memoria Dinamica
13   Puntatori E Memoria Dinamica13   Puntatori E Memoria Dinamica
13 Puntatori E Memoria Dinamicaguest60e9511
 
6 Vettori E Matrici
6   Vettori E Matrici6   Vettori E Matrici
6 Vettori E Matriciguest60e9511
 
Introduzione a R
Introduzione a RIntroduzione a R
Introduzione a RMCalderisi
 
15 - Programmazione: Algoritmi
15 - Programmazione: Algoritmi15 - Programmazione: Algoritmi
15 - Programmazione: AlgoritmiMajong DevJfu
 
corso web developer - Introduzione a Javascript
corso web developer - Introduzione a Javascriptcorso web developer - Introduzione a Javascript
corso web developer - Introduzione a JavascriptRiccardo Piccioni
 
Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Marcello Missiroli
 
Esercitazione 3 (14 marzo 2012)
Esercitazione 3 (14 marzo 2012)Esercitazione 3 (14 marzo 2012)
Esercitazione 3 (14 marzo 2012)STELITANO
 
JavaScript Object Oriented
JavaScript Object OrientedJavaScript Object Oriented
JavaScript Object OrientedManuel Scapolan
 

Mais procurados (20)

11 - Programmazione: Tipi di dato strutturati pt. 2
11 - Programmazione: Tipi di dato strutturati pt. 211 - Programmazione: Tipi di dato strutturati pt. 2
11 - Programmazione: Tipi di dato strutturati pt. 2
 
9 Altre Istruzioni Di I O
9   Altre Istruzioni Di I O9   Altre Istruzioni Di I O
9 Altre Istruzioni Di I O
 
07 - Programmazione: Tipi di base e conversioni
07 - Programmazione: Tipi di base e conversioni07 - Programmazione: Tipi di base e conversioni
07 - Programmazione: Tipi di base e conversioni
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)
 
R Vectors
R VectorsR Vectors
R Vectors
 
Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)
 
13 Puntatori E Memoria Dinamica
13   Puntatori E Memoria Dinamica13   Puntatori E Memoria Dinamica
13 Puntatori E Memoria Dinamica
 
6 Vettori E Matrici
6   Vettori E Matrici6   Vettori E Matrici
6 Vettori E Matrici
 
Introduzione a R
Introduzione a RIntroduzione a R
Introduzione a R
 
15 - Programmazione: Algoritmi
15 - Programmazione: Algoritmi15 - Programmazione: Algoritmi
15 - Programmazione: Algoritmi
 
corso web developer - Introduzione a Javascript
corso web developer - Introduzione a Javascriptcorso web developer - Introduzione a Javascript
corso web developer - Introduzione a Javascript
 
07 1 funzioni
07 1 funzioni07 1 funzioni
07 1 funzioni
 
Pillole di C++
Pillole di C++Pillole di C++
Pillole di C++
 
Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!
 
Corso c++
Corso c++Corso c++
Corso c++
 
Esercitazione 3 (14 marzo 2012)
Esercitazione 3 (14 marzo 2012)Esercitazione 3 (14 marzo 2012)
Esercitazione 3 (14 marzo 2012)
 
Java lezione 12
Java lezione 12Java lezione 12
Java lezione 12
 
JavaScript Object Oriented
JavaScript Object OrientedJavaScript Object Oriented
JavaScript Object Oriented
 
2008 python
2008 python2008 python
2008 python
 

Semelhante a La Grafica Con Java

Qt Lezione3: un visualizzatore di immagini
Qt Lezione3: un visualizzatore di immaginiQt Lezione3: un visualizzatore di immagini
Qt Lezione3: un visualizzatore di immaginiPaolo Sereno
 
Qt Lezione4 Parte2: creare un custom widget plugin per Qt Designer
Qt Lezione4 Parte2: creare un custom widget plugin per Qt DesignerQt Lezione4 Parte2: creare un custom widget plugin per Qt Designer
Qt Lezione4 Parte2: creare un custom widget plugin per Qt DesignerPaolo Sereno
 
Tutorial Creazione Di Un Sistema Di Scrittura Matant
Tutorial   Creazione Di Un Sistema Di Scrittura MatantTutorial   Creazione Di Un Sistema Di Scrittura Matant
Tutorial Creazione Di Un Sistema Di Scrittura Matantfabiovergani
 
Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)STELITANO
 
Javascript - 7 | WebMaster & WebDesigner
Javascript - 7 | WebMaster & WebDesignerJavascript - 7 | WebMaster & WebDesigner
Javascript - 7 | WebMaster & WebDesignerMatteo Magni
 
Introduzione al linguaggio Java
Introduzione al linguaggio JavaIntroduzione al linguaggio Java
Introduzione al linguaggio JavaPaolo Tosato
 
04 Tapestry5 In Action Pratica
04   Tapestry5 In Action   Pratica04   Tapestry5 In Action   Pratica
04 Tapestry5 In Action Praticabobpuley
 
Primo Incontro Con Scala
Primo Incontro Con ScalaPrimo Incontro Con Scala
Primo Incontro Con ScalaFranco Lombardo
 
What is new in C# 2018
What is new in C# 2018What is new in C# 2018
What is new in C# 2018Marco Parenzan
 
5 Strutture Iterative
5   Strutture Iterative5   Strutture Iterative
5 Strutture Iterativeguest60e9511
 

Semelhante a La Grafica Con Java (20)

Presentazione Geogebra
Presentazione GeogebraPresentazione Geogebra
Presentazione Geogebra
 
Quinta lezione android
Quinta lezione androidQuinta lezione android
Quinta lezione android
 
Qt Lezione3: un visualizzatore di immagini
Qt Lezione3: un visualizzatore di immaginiQt Lezione3: un visualizzatore di immagini
Qt Lezione3: un visualizzatore di immagini
 
Java lezione 11
Java lezione 11Java lezione 11
Java lezione 11
 
Spiegazione Programma phone
Spiegazione Programma phoneSpiegazione Programma phone
Spiegazione Programma phone
 
Come Inserire Elementi Grafici In Una Finestra Windows
Come Inserire Elementi Grafici In Una Finestra WindowsCome Inserire Elementi Grafici In Una Finestra Windows
Come Inserire Elementi Grafici In Una Finestra Windows
 
Qt Lezione4 Parte2: creare un custom widget plugin per Qt Designer
Qt Lezione4 Parte2: creare un custom widget plugin per Qt DesignerQt Lezione4 Parte2: creare un custom widget plugin per Qt Designer
Qt Lezione4 Parte2: creare un custom widget plugin per Qt Designer
 
Tutorial Creazione Di Un Sistema Di Scrittura Matant
Tutorial   Creazione Di Un Sistema Di Scrittura MatantTutorial   Creazione Di Un Sistema Di Scrittura Matant
Tutorial Creazione Di Un Sistema Di Scrittura Matant
 
Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)
 
Javascript - 7 | WebMaster & WebDesigner
Javascript - 7 | WebMaster & WebDesignerJavascript - 7 | WebMaster & WebDesigner
Javascript - 7 | WebMaster & WebDesigner
 
Introduzione al linguaggio Java
Introduzione al linguaggio JavaIntroduzione al linguaggio Java
Introduzione al linguaggio Java
 
04 Tapestry5 In Action Pratica
04   Tapestry5 In Action   Pratica04   Tapestry5 In Action   Pratica
04 Tapestry5 In Action Pratica
 
Vb.Net
Vb.NetVb.Net
Vb.Net
 
Primo Incontro Con Scala
Primo Incontro Con ScalaPrimo Incontro Con Scala
Primo Incontro Con Scala
 
Pycon Jungle
Pycon JunglePycon Jungle
Pycon Jungle
 
R Graphics
R GraphicsR Graphics
R Graphics
 
What is new in C# 2018
What is new in C# 2018What is new in C# 2018
What is new in C# 2018
 
Basi di flash
Basi di flashBasi di flash
Basi di flash
 
Rest sdk
Rest sdkRest sdk
Rest sdk
 
5 Strutture Iterative
5   Strutture Iterative5   Strutture Iterative
5 Strutture Iterative
 

La Grafica Con Java

  • 3. La struttura di un Jframe(1)
  • 4.
  • 5.
  • 6. Esempio MioFrame MioFrame1
  • 7. Arricchire un Frame Non possiamo disegnare, scrivere o aggiungere Componenti direttamente al Frame. Tutto va inserito dentro il “contentPane”
  • 8.
  • 9.
  • 10. La classe Graphics ed il metodo paintComponent () ● Chi chiama paintComponent ? – viene chiamato automaticamente ogni qualvolta sia necessario. Non deve essere chiamato manualmente ● Per forzarne la chiamata usare il metodo: – void repaint (): forza il ridisegno della finestra ● Quali azioni attivano il paintComponent ? – tutto ciò che provoca un ridisegno della finestra (ridimensionamento della finestra, riduzione ad icona, massimizzazione, sovrapposizione di finestre, ecc.)
  • 11. La classe Graphics ed il metodo paintComponent () ● Per lavorare il paintComponent ha bisogno di un oggetto Graphics ● Esso è la sua “memoria” e il suo “libretto di istruzioni” per eseguire i comandi di disegno che chiederemo nel nostro codice ● Un Graphics (contesto grafico) viene creato dal JComponent appena deve essere disegnato la prima volta
  • 12. La classe Graphics ed il metodo paintComponent() ● Graphics mantiene le seguenti informazioni: – l'oggetto sul quale si disegna – il sistema di coordinate adottato per disegnare – il colore di foreground (colore con cui disegnare) void setColor(Color c) – il font usato per le stringhe e le sue proprietà – il “clip” (ritaglio) – la modalità di disegno (Paint o XOR) – ……… .
  • 13.
  • 15.
  • 17.
  • 19. Disegni Per disegnare un segmento: – void drawLine (int x1, int y1, int x2, int y2): disegna una linea continua Per disegnare un punto: – void drawLine (int x1, int y1, int x1, int y1): disegna un punto
  • 20. Disegni Per disegnare un poligono: – void drawPolygon (int[] x, int[] y, int npoints): ● Per disegnare una spezzata: – void drawPolyline (int[] xCoord, int[] yCoord, int npoints) ● Per disegnare un arco: – void drawArc (int x, int y, int width, int height, int startAngle, int arcAngle)
  • 21. Disegni Per disegnare rettangoli – void drawRect (int x, int y, int width, int height): Per disegnare Ovali – void drawOval (int x, int y, int width, int height): Per disegnare rettangoli arrotondati: – void drawRoundRect (int x, int y, int width, int height, int arcWidth, int arcHeight)
  • 22. Considerazioni finali sulle primitive di disegno Esistono una serie di metodi analoghi ai precedenti per il riempimento di forme: – void fillPolygon (Polygon p) – void fillPolygon (int[] x, int[] y, int npoints) – void fillArc (int x, int y, int width, int height, int startAngle, int arcAngle) – void fillRect (int x, int y, int width, int height) – void fillOval (int x, int y, int width, int height) – void fillRoundRect (int x, int y, int width, int height, int arcWidth, int arcHeight)
  • 23.
  • 24.
  • 25. Gestore degli eventi Applicativo Evento Azione Devo eseguire l’azione associata al bottone Chiama l’ascoltatore Esegue azione Listener
  • 26.
  • 27.
  • 28.
  • 29.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42. Layout del flusso Componente 1 Componente 2 Componente 3
  • 43.
  • 44.
  • 45. Layout dei bordi Componente North Componente Center Componente South Comp. West Comp. East
  • 46.
  • 47. Layout a Griglia Componente 1 Componente 2 Componente 4 Componente 6 Componente 5 Componente 3
  • 48.
  • 49.
  • 50.