La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Grafica Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – 53100 – SIENA Uff. 0577233606

Presentazioni simili


Presentazione sul tema: "Grafica Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – 53100 – SIENA Uff. 0577233606"— Transcript della presentazione:

1 Grafica Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – 53100 – SIENA Uff. 0577233606 rigutini@dii.unisi.it www.dii.unisi.it/~rigutini/

2 Grafica

3 I package java.AWT e javax.swing Il package java.AWT: Grafica 2d (Shape, Rect, Circle, ecc …) Interfacce grafiche (Frame, Button, TextBox) Il package javax.swing: Interfacce grafiche avanzate Interfacce Grafiche: Posizionamento di oggetti Funzionamento ad eventi Implementazione dei gestori di eventi

4 Creazione dellinterfaccia Ogni oggetto è una componente (Component): La classe radice La classe contenitrice (Container) è il Frame (o JFrame in swing) Allinterno del Frame è possibile inserire gli oggetti Component Ogni oggetto Component (e Container) ha delle proprietà e dei metodi: Le proprietà ed i metodi settano laspetto della componente nel Frame

5 Posizionamento delle componenti Il posizionamento avviene tramite degli oggetti appositi: LayoutManager Esistono alcuni tipi di LayoutManager: BorderLayout: 5 possibili posizioni per la componente SUD,NORD,EST,OVEST,CENTRO FlowLayout: il posizionamento avviene mettendo uno dietro laltro le componenti ed organizzandole in file GridLayout: viene creata una griglia con n righe e m colonne specificate nel costruttore e le componenti vengono aggiunte per verticale o orizzontale e seguendo un andamento RightToLeft o LeftToRight a seconda di due proprietà delloggetto contenitore (ComponentOrientation e right-to-left).

6 La classe Panel Dato che in un Container è possibile inserire solo Component e solamente in un numero limitato di orientamenti, è stato necessario creare una classe che fosse al tempo stesso Container e Component: Panel (JPanel in swing) Tramite questa classe è possibile dividere il Frame in più sottoframe (i Panel) e gestire ogni Panel in maniera autonoma: Con ordinamenti differenti Con componenti differenti

7 Gli eventi Come gestire linterazione dellutente con linterfaccia? Ogni operazione che lutente esegue su una component genera un Event E necessario utilizzare un EventListener che raccoglie levento: Ogni volta che lutente vuole eseguire un operazione in risposta ad un evento, è necessario creare un Listener che implementa linterfaccia EventListener e scrivere il codice che desidera sia eseguito.

8 Modifica di altre Components Molte volte è necessario che il gestore dellevento veda le altre Components definite nel Frame: il Listener è implementato come InnerClass del Frame Il Listener viene dotato di un costruttore con parametri e riceve il Frame contenitore come parametro. In tal modo è possibile modificare le altre Component a seguito di un evento

9 Listeners forniti con JDK Il JDK mette a disposizione un gran numero di interfacce Listener: ActionListener, AdjustmentListener, AWTEventListener, ComponentListener, ContainerListener, FocusListener, HierarchyBoundsListener, HierarchyListener, InputMethodListener, ItemListener, KeyListener, MouseListener, MouseMotionListener, MouseWheelListener, TextListener, WindowFocusListener, WindowListener, WindowStateListener ActionListenerAdjustmentListenerAWTEventListener ComponentListenerContainerListenerFocusListener HierarchyBoundsListenerHierarchyListenerInputMethodListener ItemListenerKeyListenerMouseListenerMouseMotionListener MouseWheelListenerTextListenerWindowFocusListener WindowListenerWindowStateListener

10 Listeners Essendo interfacce però richiedono che siano implementati tutti i metodi previsti dallinterfaccia: Questa cosa è noiosa quando in realtà saremmo interessati solamente ad un evento Il Java allora ha messo a disposizione delle classi Adapter che implementano tutti i metodi delle relative interfacce come metodi vuoti: Il programmatore può allora estendere il desiderato Adapter e sovrascrivere (Override) il metodo che desidera

11 Interfacce grafiche con Netbeans Utilizzando un IDE, in realtà tutta la logica degli eventi e listeners rimane nascosta. Il Netbeans per esempio, permette di creare direttamente un progetto di tipo grafico. In tale modalità il rpogrammatore ha a disposizione due viste: Una classica in cui è visualizzato il sorgente java che il programmatore può modificare Una in cui viene visualizzata l'interfaccia grafica che si sta sviluppando. In questa modalià è possibile creare l'interfaccia semplicemente trascinando gli elementi grafici dalla palette grafica visualizzata sulla destra. Una volta posizionati gli oggetti nel frame o panel e specificato l'evento da gestire, il NB genera un funzione vuota che gestisce l'evento e che deve essere implementata dal programmatore.


Scaricare ppt "Grafica Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – 53100 – SIENA Uff. 0577233606"

Presentazioni simili


Annunci Google