Gerarchie di Tipi. Gerarchie di tipi. Ogni classe può. I due meccanismi si possono combinare
|
|
- Domenica Grasso
- 5 anni fa
- Visualizzazioni
Transcript
1 Gerarchie di Tipi Metodologie di progetto basate su estensione e composizione di classi e interfacce progetto di interfacce grafiche Gerarchie di tipi Ogni classe può implementare più interfacce estendere al più un altra classe I due meccanismi si possono combinare Uno schema ricorrente di tipi in gerarchia SuperClasse Interfaccia Classe 1
2 University Employees Una struttura universitaria Il personale è strutturato in Personale Docente: Faculty Personale Tecnico Amministrativo: Staff University Employees Introduciamo una terza categoria che descrive le due tipologie di personale UnivEmployee Intesa non per creare istanze proprie, ma definisce le caratteristiche di struttura e comportamento comuni a tutto il personale definiamo abstract per realizzare queste scelte di progetto University Employees UnivEmployee <abstract> Faculty Staff 2
3 University Employees A tutto il personale viene garantito l uso di posta elettronica Rappresentiamo mediante un metodo /** * manda un messaggio all oggetto su cui è invocato */ public void send (string msg); Includiamo il metodo nella classe radice della gerarchia così che venga ereditato dalle due classi derivate University Employees Accesso alla posta elettronica è una proprietà generale, non propria solo delle classi di questa gerarchia. Possiamo estrarre questa proprietà e generalizzare l architettura per renderla più facilmente estendibile public interface Has { public void send (string msg); University Employees on-line Reachable UnivEmployee Faculty Staff 3
4 University Employees public abstract class UnivEmployee implements Reachable { public void send (string msg) { public class Faculty extends UnivEmployee { public class Staff extends UnivEmployee { University Employees Al personale docente viene inoltre garantita la possibilità di gestire una propria pagina web /** * restituisce la URL associata all oggetto */ public Url browse(); Definito solo per la classe Faculty University Employees on the web Anche qui, possiamo generalizzare introducendo una nuova interfaccia public interface WebAccessible { public Url browse(); 4
5 University Employees on the web Reachable WebAccessible UnivEmployee Faculty Staff University Employees on the web public abstract class UnivEmployee implements Reachable { public void send (string msg) { public class Faculty extends UnivEmployee implements WebAccessible { public Url browse() { public class Staff extends UnivEmployee { University Employees on the web Possiamo dare struttura alla composizione di interfacce public interface Online extends Reachable,WebAccessible { Estensione di interfacce no vincoli: possiamo estendere più di una interfaccia interfaccia che estende è sottotipo di tutte le interfacce che vengono estese 5
6 University Employees on-line Reachable WebAccessible UnivEmployee OnLine Faculty Staff University Employees on the web public abstract class UnivEmployee implements OnLine { public void send (string msg) { public class Faculty extends UnivEmployee implements OnLine { public Url browse() { public class Staff extends UnivEmployee { Corsi Il personale docente insegna uno o più corsi all interno dei corsi di laurea Rappresentiamo nei diagrammi con una nuova relazione tra classi associazione 6
7 University Employees Reachable WebAccessible UnivEmployee OnLine Course 1..* Faculty Staff University Employees public abstract class UnivEmployee implements OnLine { public void send (string msg) { public class Faculty extends UnivEmployee implements OnTheWeb { public Url browse() { private ArrayList<Course> courses; public class Staff extends UnivEmployee { University Employees I corsi vengono gestiti dal personale tecnico amministrativo per gli aspetti relativi a iscrizione, liste di esami La classe Staff dipende quindi dalla classe Course 7
8 University Employees Reachable WebAccessible UnivEmployee OnLine Course 1..* Faculty Staff University Employees public abstract class UnivEmployee implements OnLine { public void send (string msg) { public class Faculty extends UnivEmployee implements OnTheWeb { public Url browse() { private ArrayList<Course> courses; public class Staff extends UnivEmployee { public void admin(course c) { Corsi on-line Possiamo sfruttare la struttura in più che abbiamo ottenuto dall introduzione delle interfacce per rappresentare ulteriori funzionalità Ad esempio, i corsi possono essere dotati di un sito web e di un indirizzo di posta elettronica 8
9 Corsi on-line reachable WebAccessible UnivEmployee OnLine Course 1..* Faculty Staff Notazione UML Relazione Simbolo Ereditarietà Implementazione Aggregazione Dipendenza Metodologie di progetto basate su estensione e composizione di classi e interfacce progetto di interfacce grafiche 9
10 Eventi e Listeners La sorgente di un evento ispeziona la lista dei suoi listeners (registrati) seleziona tutti i listeners il cui tipo corrisponde al tipo dell evento. su ciascuno dei listeners selezionati, invoca il metodo associato all evento passandogli l event object associato all evento Listeners (alcuni) metodi ActionListener WindowListener ListSelectionListener KeyListener MouseMotionListener MouseListener void actionperformed(actionevent) void windowactivated(windowevent) void windowclosed(windowevent) void valuechanged(listselectionevent) void keypressed(keyevent) void keyreleased(keyevent) void keytyped(keyevent) void mousemoved(mousemotionevent) void mousedrag(mousemotionevent void MouseClicked(MouseEvent) void mouseentered(mouseevent) Listeners e Adapters Listeners : interfacce Adapters: una classe (astratta) che implementa il listener fornendo implementazioni default per i metodi dichiarati dal listener La nomenclatura aiuta: XEvent: la classe associata all evento X XListener : l interfaccia che i listenerers dell evento X devono implementare XAdapter: la classe che implementa XListener con metodi default: 10
11 Listeners EventListener MouseListener KeyListener ActionListener WindowListener ListSelectionListener : MouseMotionListener Listeners e Adapters EventListener MouseListener KeyListener ActionListener WindowListener ListSelectionListener : MouseMotionListener MouseAdapter KeyAdapter WindowAdapter Definizione di Listeners Implementiamo il Listener class MyXListener implements XListener { // metodi definiti da XListener Estendiamo l Adapter class MyXAdapter extends XAdapter { // sovrascrive (alcuni de) i metodi definiti da X 11
12 Registrazione di Listeners Ogni event source ha un metodo per registrare un corrispondente listener public void addxlistener(xlistener listener) Esempio: ClickCounter 4 click Reset Esempio: ClickCounter Gestione eventi: prima alternativa Il frame gestisce entrambi i pulsanti JFrame ActionListener ClickCounter 12
13 Esempio: ClickCounter public class ClickCount extends JFrame implements ActionListener { int count = 0; JLabel clicks = new JLabel ("Total clicks = 0"); JButton b = new JButton ("click"); JButton r = new JButton ("reset"); public ClickCount() { b.addactionlistener(this); r.addactionlistener(this); JFrame ActionListener public void actionperformed( ActionEvent e ) { if (e.getsource() == b) count++; else if (e.getsource() == r) count = 0; clicks.settext("total clicks = " + count); ClickCounter Esempio: ClickCounter Gestione eventi: seconda alternativa I pulsanti gestiscono gli eventi autonomamente JFrame ActionListener ClickCounter 2 ActionListener Esempio: ClickCounter public class ClickCount extends JFrame { public ClickCount() { b.addactionlistener(new ActionListener { public void actionperformed(actionevent e) { count++; clicks.settext("total clicks = " + count); ); b.addactionlistener(new ActionListener { public void actionperformed(actionevent e) { count = 0; clicks.settext("total clicks = " + count); ); 13
14 Controllo del layout Ovvero, controllo della disposizione dei componenti all interno di una finestra Abbiamo visto applicazioni con una disposizione di componenti elementare I pannelli che abbiamo utilizzato dispongono le componenti in ordine, da sinstra verso destra Per disporre in modo più strutturato utilizziamo pannelli con diverse politiche di disposizione (layout) Continua Controllo del layout Ogni contenitore è associato ad un layout manager che definisce la politica di disposizione delle componenti Tre tipologie standard di layout managers border layout flow layout grid layout Controllo del layout JPanel ha un manager di default: FlowLayout: le componenti vengolo disposte da sinistra a destra utilizzando una nuova riga quando necessario È possibile modificare il layout manager con un metodo corrispondente panel.setlayout(new BorderLayout()); 14
15 Border Layout Dispone le componenti in aree: Continua Border Layout È il layout di default per un JFrame (in realtà per il content pane del frame) Quando aggiungiamo una componente è necessario specificare la posizione: panel.add(component, BorderLayout.NORTH); Espande ciascuna componente fino a riempire l are assegnata se non si vuole questo effetto è necessario includere la componente in un ulteriore pannello Grid Layout Dispone le componenti in una griglia con un numero predeterminato di righe e colonne Tutte le componeni asssumono le stesse dimensioni Espande ciascuna componente fino a riempire l area ad essa assegnata 15
16 Grid Layout Le componenti si aggiungono per riga, da sinistra a destra: JPanel numberpanel = new JPanel(); numberpanel.setlayout(new GridLayout(4, 3)); numberpanel.add(button7); numberpanel.add(button8); numberpanel.add(button9); numberpanel.add(button4); Grid Layout Domande Come disponiamo due pulsanti allineati sul lato inferiore di un frame? Come disponiamo tre pulsanti uno sopra l altro? 16
17 Risposte Prima le aggiungiamo ad un pannello (con FlowLayout) e poi aggiungiamo il pannello all are sud del frame. Li disponiamo dentro un panello con GridLayout contenente tre righe ed una colonna Esempio EventFrame Una finestra che cattura e traccia un insieme di eventi del mouse EventFrame costruttore import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; /** EventFrame: traccia eventi di vario genere **/ class EventFrame extends JFrame { /** * Costruisce il Frame principale con le varie componenti */ public EventFrame() { 17
18 EventFrame costruttore // Labels e TextFields per tracciare gli eventi JPanel eventfields = new JPanel(new BorderLayout()); Panel labels = new JPanel(new GridLayout(events.length,1)); JPanel traces = new JPanel(new GridLayout(events.length,1)); for (int i = 0; i < events.length; i++) { labels.add(events[i].label); traces.add(events[i].trace); eventfields.add(labels,borderlayout.west); eventfields.add(traces,borderlayout.center); EventFrame costruttore // Pulsanti JPanel buttons = new JPanel(new GridLayout(2,1)); buttons.add(new EventButton(Color.blue)); buttons.add(new EventButton(Color.red)); // Completa il layout setlayout(new GridLayout(1,2)); add(eventfields); add(buttons); Progetto dei Listeners ActionListener MouseListener MouseMotionListener EventTracer MouseTracer Actiontracer MouseMotionTracer : 18
19 Classi interne EventTracer private class EventTracer { /** * Costruisce il messaggio da visualizzare in risposta a * ciascun evento (sul campo testo corrispondente) * Overloade sul tipo dell'evento */ public void trace(int field, KeyEvent e) { // messaggio = codice del tasto e carattere displaymessage(field, "Code = " + e.getkeycode() + + ", Char = " + e.getkeychar()); public void trace(int field, ActionEvent e) { // messaggio = numero di action events fino ad ora actionevents++; displaymessage(field, "Event n. " + actionevents); Classi interne EventTracer public void trace(int field, MouseEvent e ) { // messaggio = pulsante@(x,y), numero di click consecutivi int mod = e.getmodifiers(); String btn = "none"; if ( mod == 16 ) btn = "left"; else if (mod == 8 ) btn = "center"; else if (mod == 4 ) btn = "right"; displaymessage(field, btn + // "@(" + e.getx() + "," + e.gety() +")" + ", Clicks = " + e.getclickcount()); Classi interne Listeners class ActionTracer extends EventTracer implements ActionListener { public void actionperformed(actionevent e) { trace(action, e); // ActionTracer(Color col) { super(col); 19
20 Classi interne Listeners class MouseTracer extends EventTracer implements MouseListener { public void mouseclicked(mouseevent e) { trace(mouse_clicked, e); public void mouseentered(mouseevent e) { trace(mouse_entered, e); public void mouseexited(mouseevent e) { trace(mouse_exited, e); public void mousepressed(mouseevent e) { trace(mouse_pressed, e); public void mousereleased(mouseevent e) { trace(mouse_released, e); MouseTracer(Color col) { super(col); Classi interne Listeners class MouseMotionTracer extends EventTracer implements MouseMotionListener { public void mousedragged(mouseevent e) { trace(mouse_dragged, e); public void mousemoved(mouseevent e) { trace(mouse_moved, e); MouseMotionTracer(Color col) { super(col); Classi interne Pulsanti /** * Aree di tracciamento, definite come pulsanti * Registrano listeners per tutti gli eventi da tracciare */ class EventButton extends JButton { EventButton(Color c) { setbackground(c); addactionlistener( new ActionTracer(c) ); addmouselistener( new MouseTracer(c) ); addmousemotionlistener( new MouseMotionTracer(c) ); // Conclude EventFrame 20
21 Esempio Puzzle Forniamo una interfaccia grafica per il Puzzle che realizza il gioco del 15 Ricordiamo PuzzleBoard Nella costruzione dell applicazione, la classe PuzzleBoard funge da back-end L interfaccia grafica si limita in sostanza a fornire metodi di interazioni con il back-end PuzzleBoard public class PuzzleBoard { /** costruisce una tabella con dimensione size */ public PuzzleBoard(int size) { /** il valore contenuto nella posizione (x,y) * -1 se la posizione è vuota */ public int val(int x, int y) { /** muove il pezzo che porta il numero w se questo * è in posizione adiacente alla posizione vuota */ public boolean move(int w) { /** true se la configurazione corrente è di successo */ public boolean win() { 21
22 PuzzleFrame struttura import java.awt.*; import java.awt.event.*; import javax.swing.*; class PuzzleFrame extends JFrame { // backend private PuzzleBoard board; // dimensione del puzzle private int size; // i pezzi sull'interfaccia. Ciascun PuzzleButton è // associato alla corrispondente posizione sul backend private PuzzleButton[][] button; PuzzleFrame costruttore /** costruuisce la tabella grafica a partire dalla * tabella b che costituisce il backend */ public PuzzleFrame(int board_size, PuzzleBoard b) { size = board_size; board = b; button = new PuzzleButton[size][size]; setlayout(new GridLayout(size, size)); // crea i pulsanto associati ai pezzi e disponi for ( int i = 0; i!= size; i = i+1 ) { for ( int j = 0; j!= size; j = j+1 ) { button[i][j] = new PuzzleButton(); cp.add(button[i][j]); // inizializza i pezzi del puzzle con i loro numeri display(); PuzzleFrame refresh /** ridisegna la tabella dopo una mossa **/ private void display() { // ridisegna i numeri sui pulsanti for ( int i = 0; i!= size; i = i+1 ) { for ( int j = 0; j!= size; j = j+1 ) { if ( board.val(i,j) >= 0 ) { button[i][j].setbackground(color.white); button[i][j].settext("" + board.val(i,j)); else { button[i][j].setbackground(color.black); button[i][j].settext( "" ); 22
23 PuzzleFrame refresh if (board.win()) { int response = JOptionPane.showConfirmDialog(this, "Done! Play again?"); switch (response) { case JOptionPane.YES_OPTION : board = new PuzzleBoard(size); display(); break; case JOptionPane.CANCEL_OPTION : break; default: System.exit(0); // chiude il metodo display() PuzzleFrame gestione pulsanti /** classe interna: controllore dei pezzi */ class PuzzleButton extends JButton implements ActionListener { public PuzzleButton( ){ // numero del pulsante deciso da display() super(""); addactionlistener(this); public void actionperformed(actionevent evt) { // prendi il numero di questo pulsante String s = gettext(); if (!s.equals("") ) { // non è il pulsante vuoto boolean ok = board.move(integer.parseint(s)); if ( ok ) { display(); Componenti Swing Molte, forse troppe sicuramente troppe per questo corso Ne menzioniamo solo alcune 23
24 Scelte Radio buttons Check boxes Scelte Combo boxes Menu 24
25 Sliders 25
Controllo del layout. Per disporre in modo più strutturato utilizziamo pannelli con diverse politiche di disposizione (layout)
Controllo del layout Ovvero, controllo della disposizione dei componenti all interno di una finestra Abbiamo visto applicazioni con una disposizione di componenti elementare I pannelli che abbiamo utilizzato
DettagliJava SE 6. Programmazione grafica (3)
Java SE 6 Programmazione grafica (3) diegozabot@yahoo.it ursula.castaldo@gmail.com Event Listeners (1) Se vogliamo che una classe risponda a degli eventi utente, deve implementare l'interfaccia che si
DettagliMetodologie di progetto Estensione di classi Implementazione di interfacce Composizione
Gerarchie di Tipi Metodologie di progetto Estensione di classi Implementazione di interfacce Composizione Notazione UML Relazione Simbolo Significato Ereditarietà Implementazione Aggregazione Dipendenza
DettagliL Abstract Windowing Toolkit. Le GUI in Java. Il Frame. Cenni sull ereditarietà. Gianpaolo Cugola - Sistemi Informativi in Rete
Le GUI in Java L Abstract Windowing Toolkit Fino ad ora abbiamo usato le classi del pacchetto JavaBook per realizzare semplici interfacce grafiche (GUI) Si tratta di classi facili da usare...... ma che
DettagliRiassunto. GUI in Java con l AWT 1. Cos è una GUI. Oggi: GUI in Java, l AWT. GUI in Java. Un esempio. Stefano Mizzaro 1
Riassunto GUI in Java con l AWT 1 Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione, lezione 23 15 febbraio
DettagliRiassunto. GUI in Java con l AWT 1. Oggi: GUI in Java, l AWT. Oggi. GUI in Java. Cos è una GUI. Stefano Mizzaro 1
Riassunto GUI in Java con l AWT 1 Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 20 20 novembre
DettagliUnità B2 Gestione eventi 2
(A) CONOSCENZA TERMINOLOGICA Dare una breve descrizione dei termini introdotti: MouseListener MouseAdapter TextListener KeyListener KeyAdapter ItemListener getkeycode() getkeychar() (B) CONOSCENZA E COMPETENZA
DettagliGrafica ed eventi. Più movimento alle classi
Grafica ed eventi Più movimento alle classi 1 ActionListener Listener: è una classe che implementa ActionListener e definisce actionperformed( ) Per aggiungere un ActionListener ad un oggetto c c.addactionlistener(listener);
DettagliProgrammazione ad Eventi
Programmazione ad Eventi Eventi, Sorgenti, e Listeners Una interfaccia utente deve gestire una moltitudine di eventi eventi da tastiera, del mouse, click su pulsanti, Opportuno poter discriminare diversi
DettagliGestione degli eventi in Java
Gestione degli eventi in Java package java.awt.event.* Il modello degli eventi I componenti dell awt generano eventi in seguito alle azioni dell utente movimento del mouse click pressione di un tasto etc.
DettagliProgrammazione ad Eventi
Programmazione ad Eventi Eventi, Sorgenti, e Listeners Una interfaccia utente deve gestire una moltitudine di eventi eventi da tastiera, del mouse, click su pulsanti, Opportuno poter discriminare diversi
DettagliEventi e listener per i componenti grafici
Eventi e listener per i componenti grafici Raffaella Brighi, a.a. 2005/06 Corso di Laboratorio II. A.A. 2005-06 CdL Operatore Informatico Giuridico. Eventi e listener Eventi e listener (ascoltatori) sono
DettagliGestione dell interattività: gli eventi
Gestione dell interattività: gli eventi Gli eventi sono una modalità di comunicazione tra l utente (sistema) e il programma in esecuzione. Tipi di eventi: Input da parte dell utente: pressione del(i) bottone(i)
DettagliLa nostra finestra dovrebbe essere come mostra la figura: Diamo innanzitutto un occhiata alle componenti principali di input/output:
Esercitazione N4: Costruzione di una applicazione GUI utilizzando i componenti di base per realizzare l input e l output e cioè Label, TextBox, TextArea Button e Panel (Pannelli) I componenti che utilizzeromo
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA5 B2 Gestione eventi (2) 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti AWT o Swing Programmazione ad eventi 2 1 Introduzione Continuiamo la
DettagliINTERFACCE GRAFICHE IN JAVA CON SWING DISPENSE
INTERFACCE GRAFICHE IN JAVA CON SWING DISPENSE La Gestione degli Eventi Ogni oggetto grafico è predisposto ad essere sollecitato in qualche modo dall utente (per esempio un pulsante può essere premuto).
DettagliLezione n.12 LPR Informatica Applicata GUI programming
Università degli Studi di Pisa Lezione n.12 LPR Informatica Applicata GUI programming 19/05/2008 Laura Ricci UNA SEMPLICE INTERFACCIA PER INSTANT MESSAGING JAVA GUI: COMPONENTI BASE import java.awt.*;
DettagliSviluppo di Interfacce Grafiche in Java
Sviluppo di Interfacce Grafiche in Java Massimiliano de Leoni (con la supervisione del docente Massimo Mecella) Università di Roma La Sapienza - Sede di Latina Corso di Progettazione del Software A.A.
DettagliEventi di azione. // con interfaccia per eventi di azione
Eventi di azione (Interfaces ActionListener, Classes ActionEvent) Sono generati quando si premono bottoni, si selezionano voci di menù, si preme invio mentre si scrive in un campo di testo. In awt sono
DettagliL interfaccia grafica in Java
L interfaccia grafica in Java Java possiede due package per la creazione di interfacce grafiche java.awt javax.swing AWT (Abstract Widget Toolkit) presente già in Java 1.0, migliorato in Java 1.1. Invariato
DettagliL interfaccia grafica con Java
L interfaccia grafica con Java 1/24 L interfaccia utente serve per la comunicazione tra utente e programma Distinguiamo le interfacce tra quelle a caratteri e quelle grafiche Le GUI (Graphical user interface)
Dettagliinterfacce ed eventi intercettare il mouse ed altri eventi
interfacce ed eventi intercettare il mouse ed altri eventi interfacce: premessa il termine "interfaccia" occorre in Java con due significati, collegati ma distinti 1. interface, parola chiave di Java e
DettagliEsercitazione n 6. Capacità di analisi e di estensione di progetti Componenti grafici e gestione di eventi Linguaggio Java:
Esercitazione n 6 Capacità di analisi e di estensione di progetti Componenti grafici e gestione di eventi Linguaggio Java: il package javax.swing (JFrame, JPanel, JButton, ) java.util.eventobject e sue
DettagliGUI e java swing. Elmenti della GUI. Eventi e listener contenitori componenti layout manager. caratteristiche speciali
GUI e java swing Raffaella Brighi, a.a. 2005/06 Corso di Laboratorio II. A.A. 2005-06 CdL Operatore Informatico Giuridico. Elmenti della GUI Eventi e listener contenitori componenti layout manager caratteristiche
DettagliAlessandro De Luca. Lezione, 13 maggio 2015
Basi Basi di di dati dati ee sistemi sistemi informativi informativi II mod.laboratorio mod.laboratorio Alessandro De Luca Università degli Studi di Napoli Federico II Lezione, Introduzione a Java Swing
DettagliProgrammazione in rete e laboratorio
Programmazione in rete e laboratorio JAVA Alberto Martelli PROGRAMMAZIONE GRAFICA Molti programmi interagiscono con l utente attraverso una interfaccia grafica GUI - Graphical User Interface Java fornisce
DettagliI Layout Manager di java. Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni
I Layout Manager di java Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni Creazione di interfacce complesse con i layout manager La posizione di un componente aggiunto
DettagliParadigmi di programmazione (sperimentazioni)
Paradigmi di programmazione (sperimentazioni) 2000-01 JAVA Alberto Martelli Programmazione grafica PROGRAMMAZIONE GRAFICA Molti programmi interagiscono con l utente attraverso una interfaccia grafica GUI
DettagliAppendice B:Interfacce Grafiche
Appendice B:Interfacce Grafiche Per usare tali funzioni bisogna importare le librerie: import javax.swing.*; import java.awt.*; B.1 JFrame Creazione ci un interfaccia. JFrame = new JFrame( Prima finestra
DettagliGestione di eventi ed interfacce utente grafiche
Gestione di eventi ed interfacce utente grafiche Eventi Ogni volta che l utente esegue un azione un clic del mouse la pressione di un tasto sulla tastiera la modifica di una finestra la selezione di un
DettagliInterfacce. Un interfaccia Java è una collezione di metodi astratti (e di costanti) Un metodo astratto è un metodo non implementato
Interfacce 1 Interfacce Un interfaccia Java è una collezione di metodi astratti (e di costanti) Un metodo astratto è un metodo non implementato costituito dall intestazione senza il corpo della definizione
DettagliProgrammazione in rete e laboratorio
Programmazione in rete e laboratorio 2001-02 JAVA Alberto Martelli PROGRAMMAZIONE GRAFICA Molti programmi interagiscono con l utente attraverso una interfaccia grafica GUI - Graphical User Interface Java
DettagliClassi astratte. Master in Web Technology e Security luglio - settembre 2000. Interfacce
Master in Web Technology e Security luglio - settembre 2000 JAVA Alberto Martelli Parte III Programmazione grafica Classi astratte Vogliamo implementare un algoritmo di ordinamento di un array che sia
DettagliJava GUI. Swing Java
Java GUI Swing Java 1 Introduzione n Componenti grafici di Java (Swing) Utilizzo di alcuni dei metodi per creare semplici finestre grafiche Accesso ai JavaDoc per usare meglio gli oggetti già pronti n
DettagliInterazioni col mondo: eventi
Interazioni col mondo: eventi Le interazioni di una GUI con il mondo esterno sono segnalate tramite eventi: click del mouse, inserimento di testo, selezione/attivazione... Gli eventi che memorizzano queste
DettagliIn alcune applicazioni è necessario mostrare le informazioni in formato tabellare. Mario Bianchi Via Roma, /
JTable In alcune applicazioni è necessario mostrare le informazioni in formato tabellare Nome Cognome Indirizzo Telefono Mario Bianchi Via Roma, 12 059/1111111 Franco Rossi Via Milano, 33 059/2222222 119
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA5 B1 Gestione eventi 1 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti AWT o Swing Programmazione ad eventi 2 1 Introduzione Le interfacce create
DettagliPROVA FINALE Ingegneria del software
PROVA FINALE Ingegneria del software Ing. Jody Marca jody.marca@polimi.it Laboratorio N 3 Cosa faremo oggi 2 Interfaccia grafica e SWING Lettura e scrittura di Files di properties Internazionalizzazione
DettagliProgrammazione in Java e gestione della grafica. Lezione 21
Programmazione in Java e gestione della grafica Lezione 21 2 Parliamo ( ancora ) di Eventi della GUI (Eventi del mouse e della tastiera) 3 Gestione degli eventi del mouse Eventi del Mouse Creo un oggetto
DettagliPag. 1 di 5. private Color C0 = new Color(255, 0, 0);
Un manuale è formato da 250 pagine, In 210 di essi sono presenti 40 righe di testo, mentre nelle restanti solo 36. Determinare il numero complessivo di righe di testo del manuale. Risolvere il problema
DettagliGraphic User Interface (GUI) Model / View / Controller. Fondamenti di Informatica T2 Modulo 2. Università di Bologna A.A.
Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T2 Modulo 2 Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009 Graphic User Interface (GUI) La realizzazione
DettagliGraphic User Interface (GUI)
Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T2 Modulo 2 Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009 Graphic User Interface (GUI) La realizzazione
DettagliLa nostra interfaccia avrà l aspetto seguente:
Esercitazione N6: Utilizzo di GridLayout per la costruzione di una Calcolatrice. Gestione degli eventi mediante il metodo getsource di ActionEvent e utilizzo di Font. La nostra interfaccia avrà l aspetto
DettagliCampo Minato. in java
Campo Minato in java Il gioco campo rettangolare o quadrato suddiviso in tanti quadratini Il giocatore deve sminare il campo, cliccando sui quadratini, col tasto destro o col tasto sinistro il gioco cliccando
DettagliGestione degli eventi
Gestione degli eventi Input di un programma Da console gestito rigidamente da programma Sequenza di input definita dal programma Con interfaccia grafica Utente ha più libertà Sequenza di input in qualsiasi
DettagliLaboratorio di IUM. Lezione 3. La gestione degli eventi. Di Blasi Gianpiero - D.M.I. - Università di Catania
Di Blasi Gianpiero - D.M.I. - Università di Catania Laboratorio di IUM Lezione 3 La gestione degli eventi Cosa impareremo oggi? La filosofia della gestione gli eventi La gerarchia di eventi AWT Eventi
DettagliA. Ferrari. AWT e Swing. Java. Alberto Ferrari Informatica
AWT e Swing Java Alberto Ferrari Informatica AWT o Abstract Window Toolkit (AWT) è la libreria Java contenente le classi e le interfacce fondamentali per la creazione di elementi grafici o è stata inserita
DettagliAWT: Abstract Window Toolkit
AWT: Abstract Window Toolkit E una libreria che offre le componenti GUI essenziali Tutte le componenti GUI che sono visualizzabili sono sottoclassi della classe astratta Component Container è una sottoclasse
DettagliProgettazione e Sviluppo di Interfacce Grafiche con Java Swing
Progettazione e Sviluppo di Interfacce Grafiche con Java Swing Esercitazioni di Progettazione del Software A.A. 2012 2013 Alessandro Russo e Massimo Mecella Sapienza Università di Roma Facoltà di Ingegneria
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo L6 (JAVA9) 3 Parametri e browser 1 Prerequisiti Elementi di base HTML Programmazione Java Interfacce grafiche e gestione eventi 2 1 Introduzione In questa Unità vediamo
DettagliJFrame. Chiusura della finestra. JFrame - Esempio. Tipologia di GUI. Linee guida. Programmazione ad Oggetti 6/12/09. finestre
JFrame JFrame è la classe di base per le finestre Programmazione ad Oggetti Interfacce grafiche Fornisce tutte le caratteristiche di una finestra vuota Barra del titolo Pulsanti standard Bordo ridimensionabile
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA5 C2.1 Animazioni 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Utilizzo di elementi grafici ed eventi Utilizzo classe Canvas 2 1 Introduzione
DettagliSwing. Swing 1. Java e la grafica Java permette di realizzare agevolmente applicazioni grafiche Package java.awt
Swing Swing 1 Java e la grafica Java permette di realizzare agevolmente applicazioni grafiche Package java.awt il primo package grafico (Java 1.0) indipendente dalla piattaforma... o quasi! Package javax.swing
DettagliEreditarietà (ultima)
Ereditarietà (ultima) Classi astratte Un ibrido tra classi e interfacce Hanno alcuni metodi implementati normalmente, altri astratti Un metodo astratto non ha implementazione abstract class AccountTransaction...
DettagliEreditarietà (ultima)
Ereditarietà (ultima) Classi astratte Un ibrido tra classi e interfacce Hanno alcuni metodi implementati normalmente, altri astratti Un metodo astratto non ha implementazione abstract class AccountTransaction
DettagliProgrammazione ad Oggetti. JFrame è la classe di base per le finestre Fornisce tutte le caratteristiche di una finestra vuota
Programmazione ad Oggetti Interfacce grafiche V 1.2 Marco Torchiano 2005 JFrame JFrame è la classe di base per le finestre Fornisce tutte le caratteristiche di una finestra vuota Barra del titolo Pulsanti
DettagliConfigurazione di una vs. Laboratorio di sistemi interattivi. Dal modello formale all implementazione
Laboratorio di sistemi interattivi Lezione 10: Dal modello formale all implementazione General Course Information 1 Dal modello formale all implementazione Interprete universale del formalismo possibile
DettagliJava terzo contatto. Swing Java
Java terzo contatto Swing Java 1 Introduzione Componenti grafici di Java (Swing) Utilizzo di alcuni dei metodi per creare semplici finestre grafiche Accesso ai JavaDoc per usare meglio gli oggetti già
DettagliRaffaella Brighi, a.a. 2005/06. Eventi e listener. Corso di Laboratorio II. A.A. 2005-06
Raffaella Brighi, a.a. 2005/06 Eventi e listener Corso di Laboratorio II. A.A. 2005-06 Eventi e listener Un evento è un oggetto che rappresenta il verificarsi di un azione dell utente o del sistema(es
Dettagli4 settembre 2000 Master in Web Technology e Security - Matteo Baldoni 2. incrementa il
GUI, Event-Driven Programming e architettura Model View Controller (MVC) Master in Web Technology e Security settembre 000 Matteo Baldoni Dipartimento di Informatica - Universita` degli Studi di Torino
DettagliJava SE 6. Programmazione grafica (2)
Java SE 6 Programmazione grafica (2) diegozabot@yahoo.it ursula.castaldo@gmail.com L'aspetto del componente va fissato PRIMA di aggiungerlo al contenitore. JComponent Tutti i componenti swing condividono
DettagliScope e visibilità per classi
Packages Scope e visibilità per classi Classi interne nelle loro diverse forme Interne / statiche / locali Utilizzo congiunto con interfacce Implementazione di iteratori Gestione di eventi Packages Package:
DettagliIntroduzione (Swing vs AWT)
Swing Introduzione (Swing vs AWT) Swing Swing sono delle librerie introdotte a partire dalla versione 1.2 del JDK come evoluzione concettuale delle librerie precedenti (Abstract Window Toolkit (AWT)) AWT
DettagliApplicazioni grafiche e finestre
Applicazioni grafiche e finestre / SampleFrame.java package sampleswingjavaapp; import java.awt.flowlayout; import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.jbutton;
Dettagli8. GUI : Graphics User Interface
pag.82 8. GUI : Graphics User Interface Un linguaggio ad oggetti ha come obiettivo principale quello di fornire al programmatore classi per la gestione di ambienti grafici a finestre. Se fino a questo
DettagliGUI e MVC. Linguaggi di Programmazione: Paradigmi di Programmazione (Sperimentazioni)
GUI e MVC Linguaggi di Programmazione: Paradigmi di Programmazione (Sperimentazioni) Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino baldoni@di.unito.it
DettagliL applicazione di MVC alla simulazione di ascensore I COMPONENTI DELLE INTERFACCE UTENTE GRAFICHE: PARTE II 1
I COMPONENTI DELLE INTERFACCE UTENTE GRAFICHE: PARTE II 1 3.13 (Caso di studio facoltativo) Pensare a oggetti: Modello-Vista-Controllore I design pattern descrivono strategie efficaci per costruire sistemi
DettagliIntroduzione alla programmazione con linguaggio Java {Dott.ssa E. Calabresu, Dr. M. Carta, Ing. M. Ennas, Ing. S. Piras, Ing. F.
Introduzione alla programmazione con linguaggio Java 2004 {Dott.ssa E. Calabresu, Dr. M. Carta, Ing. M. Ennas, Ing. S. Piras, Ing. F. Saba } Note di Copyright Queste trasparenze (slide) sono coperte dalle
Dettagli18 - Classi parzialmente definite: Classi Astratte e Interfacce
18 - Classi parzialmente definite: Classi Astratte e Interfacce Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
Dettagli17 - Classi parzialmente definite: Classi Astratte e Interfacce
17 - Classi parzialmente definite: Classi Astratte e Interfacce Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
DettagliIntroduzione al package grafico Swing
Introduzione al package grafico Swing Architettura di javax.swing Java supporta direttamente nella propria architettura il concetto di applicazione grafica, tramite il package javax.swing, in cui i componenti
DettagliOCA JAVA 8 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO
CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 8 SE PROGRAMMER
DettagliConcetti principali Ereditarietà e (overriding) di metodi. Ereditarietà e costruttori Livelli di accesso protected e package La classe Object
Ereditarietà Concetti principali Ereditarietà e (overriding) di metodi Dynamic dispatch e polimorfismo Ereditarietà e costruttori Livelli di accesso protected e package La classe Object metodi tostring,
DettagliIL MOTORE PER LA PINZA DI I-D01
78-LAB pag.10-ok 20-02-2007 15:24 Pagina 10 IL MOTORE PER LA PINZA DI I-D01 DISPOSITIVI AGGIUNTIVI, 3 Il componente allegato a questo fascicolo è un motore elettrico. Esso servirà a movimentare il dito
Dettagli! Programmazione strutturata. ! OO: TDA, scambio messaggi, eredità, polimorfismo, OO in Java. ! Rassegna API. ! Documentazione Javadoc delle API
Riassunto Applet (e altro dell AWT ) Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 22 19 maggio
DettagliI CONDENSATORI E I RESISTORI DEL KIT
81-LAB pag.11 ok 12-03-2007 16:19 Pagina 11 I CONDENSATORI E I RESISTORI DEL KIT COMPONENTI 1. Gli elementi allegati a questo fascicolo fanno parte del kit per breadboard dei sensori a infrarossi: si tratta,
DettagliRiassunto: cos è la OOP? classi astratte, interfacce, classi interne. Scaletta. Figura con area()? Figura senza area()? Stefano Mizzaro 1.
OO in Java: classi astratte, interfacce, classi interne Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione,
DettagliLE TABELLE. Le liste permettono di avere una sequenza di righe In alcune applicazioni è però necessario visualizzare le informazioni anche in colonne
LE TABELLE Le liste permettono di avere una sequenza di righe In alcune applicazioni è però necessario visualizzare le informazioni anche in colonne Nome Cognome Indirizzo Telefono Mario Bianchi Via Roma,
DettagliProgrammazione Java: Interfacce grafiche (GUI)
Programmazione Java: Interfacce grafiche (GUI) romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp ( 1 ) (GUI) Interfacce grafiche Rendere facili le cose semplici e possibili le cose difficili
Dettaglimaggio 2004 Stefano Sanna - gerda@crs4.it
java.awt awt.* Abstract Window Toolkit maggio 2004 Agenda Java e interfacce grafiche Caratteristiche di AWT Design e implementazione di interfacce grafiche Panoramica dei componenti disponibili Primitive
DettagliAppendice B - Othello come applet
Appendice B - Othello come applet Il gioco dell'othello, detto anche Reversi, consiste in una scacchiera di 64 caselle, 8 x 8, su cui all'inizio si trovano quattro pedine, due nere e due bianche, vedi
DettagliLa classe java.lang.object
La classe java.lang.object In Java: Gerarchia di ereditarietà semplice Ogni classe ha una sola super-classe Se non viene definita esplicitamente una super-classe, il compilatore usa la classe predefinita
DettagliFinestra.java. static String nomicolonne[] = {"ind.","cognome","nome","telefono","e-mail"}; //nomi delle colonne della tabella
import java.awt.*; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.awt.event.windowevent; import java.awt.event.windowlistener; import java.io.*; import java.util.*;
DettagliMarco Faella Elementi di programmazione di interfacce Grafiche. Il pattern OBSERVER.
Marco Faella Elementi di programmazione di interfacce Grafiche. Il pattern OBSERVER. 9 Lezione n. Parole chiave: Java Corso di Laurea: Informatica Insegnamento: Linguaggi di Programmazione II Email Docente:
DettagliProgrammazione a Oggetti Metodologie di Programmazione 8 Giugno 2012
Programmazione a Oggetti Metodologie di Programmazione 8 Giugno 2012 Nome: Matricola: Istruzioni Scrivete il vostro nome sul primo foglio. Metodologia di Programmazione [ ] Programmazione a Oggetti [ ]
DettagliGUI e MVC. Gli oggetti prima di tutto: GUI, Event-driven programming e l architettura MVC. Graphical User Interface
GUI e MVC Linguaggi di Programmazione: Paradigmi di Programmazione (Sperimentazioni) Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino baldoni@di.unito.it
DettagliSviluppo di Interfacce Grafiche in Java. Concetti di Base ed Esempi.
SAPIENZA Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Dispensa didattica Sviluppo di Interfacce Grafiche in Java. Concetti di Base ed Esempi. M. de Leoni, M. Mecella,
DettagliCapitolo 6. Uso della gerarchia. c 2005 Pearson Education Italia Capitolo 6-1 / 125
Capitolo 6 Uso della gerarchia c 2005 Pearson Education Italia Capitolo 6-1 / 125 Sommario: Uso della gerarchia 1 Notazione UML per le classi 2 Introduzione alla gerarchia 3 Gerarchia e tipi La gerarchia
DettagliProgrammazione in Java e gestione della grafica. Lezione 19
Programmazione in Java e gestione della grafica Lezione 19 2 Parliamo di Componenti della GUI (Graphics User Interface) OBIETTIVI 3 Imparare i principi su cui sono basate le GUI Costruire dellegui e gestire
DettagliInterfacce. Esempio: interfaccia I con una sola funzione g() public interface I {
Interfacce Una interfaccia è un astrazione per un insieme di funzioni pubbliche delle quali si definisce solo la segnatura, e non le istruzioni. Un interfaccia viene poi implementata da una o più classi
DettagliMVC: esempio in java. views e controllers in javax.swing
MVC: esempio in java views e controllers in javax.swing supporto per disaccoppiamento di viste e controller nel linguaggio java JComponent Action actionperformed() JButton JList JMenuItem ConcreteAction
DettagliProf. Pagani Corrado ESERCITAZIONI JAVA
Prof. Pagani Corrado ESERCITAZIONI JAVA PRIMA APPLICAZIONE CONSOLE Eseguire somma e media tra tre numeri ES 1 CODICE Non programmo sfruttando il paradigma ad oggetti (ho solo il metodo main che è static
DettagliProgrammazione di reti Corso B. 18 Maggio 2016 Lezione 12
Programmazione di reti Corso B 18 Maggio 2016 Lezione 12 Contenuti Java Swing contenitori componenti eventi e multithreading dialoghi menu layout Java Swing Framework Java per costruire applicazioni desktop
DettagliProgrammazione a oggetti
Programmazione a oggetti Quanti oggetti, tra di loro parlando, fanno programmi. Pilu Crescenzi piluc@dsi.unifi.it Università di Firenze Programmazione a oggetti p.1/32 Cosa è un oggetto Una scatola software
Dettagli