Esplora E-book
Categorie
Esplora Audiolibri
Categorie
Esplora Riviste
Categorie
Esplora Documenti
Categorie
1
Componenti software Componenti software
Componenti avanzati di Intere micro-applicazioni
interfaccia utente Serve un foglio elettronico? un
Servono per fornire funzioni di programma di videoscrittura?
manipolazione fuori standard Usiamo un Bean pi ciccioso
Esempio: un calendario per degli altri...
selezionare una data Linterfaccia di base
Possono essere usati tali e quali comunque la stessa
in tante applicazioni: vantaggio! Lofferta vasta:
programmi di grafica
display di mappe per i GIS
2
Assemblaggio Struttura di un Bean
I Bean vengono Un Bean una classe Java...
assemblati con degli ... i cui metodi hanno dei nomi particolari
strumenti adeguati La denominazione standard consente agli strumenti di
Il risultato assemblaggio di scoprire le caratteristiche di Bean
sconosciuti
unapplicazione basata
sui Bean Un Bean pu essere usato in due contesti:
A tempo di progettazione (design time)
Si realizzano
A tempo desecuzione (run time)
applicazioni tirando i
fili anzich scrivendo
codice
3
Esempio Propriet
public class Frog {
private int jumps; Definiscono lo stato corrente di un Bean
private boolean jmpr;
Per i Bean visuali, le propriet influenzano
private .;
spesso la rappresentazione grafica
public int getJumps() {return jumps;}
public void setJumps(int newJumps) {jumps=newJumps;} Poich la modifica di una propriet avviene
public boolean isJumper(){return jmpr;} attraverso metodi, possibile far reagire il
public void setJumper(boolean j){impr=j;}
public void addActionListener(ActionListener l){.}
Bean a modifiche alle sue propriet
In particolare, modifiche alle propriet possono
// Metodo ordinario
generare eventi (vedremo fra breve)
public void gracchia(){System.out.println(Gracchia!!;}
}
Esempio: Esempio:
Propriet JButton Propriet JButton
Grafica
font fonte da usare per letichetta font fonte da usare per letichetta
icona da usare per il pulsante attivo o icona da usare perb)
void setSelected(boolean il pulsante attivo o
icon, disabledIcon icon, disabledIcon
disabilitato disabilitato
boolean isSelected()
enabled il pulsante abilitato? enabled il pulsante abilitato?
selected il pulsante premuto? selected il pulsante premuto?
Stato
Stato
4
Property Editor Eventi
A design time, gli strumenti di Un Bean pu generare eventi in risposta a stimoli esterni
sviluppo (nellesempio, VisualAge Azioni dellutente
della IBM) forniscono uninterfaccia
grafica per impostare le propriet dei Cambiamenti di valore delle propriet
Bean Timer, eventi di rete, ...
A run time, il programma pu ... e qualunque altra cosa
modificare dinamicamente le propriet
Altri Bean che sono interessati a sapere quando si
chiamando i metodi set...() e
ispezionarle chiamando get...() o is...()
verificano questi eventi possono registrarsi presso il
Bean che li genera
Quando si verificher levento, verr chiamato un
particolare metodo dellascoltatore (eventualmente
passando dei parametri)
Esempio: Esempio:
Eventi JButton Eventi JButton mouseClicked
mouseDragged
actionPerformed
mouseEntered
mouseExited
Evento mouseMoved
Descrizione
Evento Descrizione
actionEvents mousePressed
qualunque azione dellutente
Azioni utente
}
keyEvents qualunque pressione di tasti keyReleased
enabled keyTypedlo stato di abilitazione cambiato
enabled lo stato di abilitazione cambiato
Propriet
Propriet
5
Propriet ed Eventi Propriet ed Eventi
6
PropertyChangeEvents Come si ricevono gli eventi
Cosa fa Chi vuole essere informato di un evento
firePropertyChange("baseDate",oldValue,baseDate)
si registra presso chi genera levento
Se il vecchio valore uguale al nuovo (ovvero, se il valore Il metodo da chiamare per registrarsi
della propriet non cambiato), non fa nulla addTipoEventoListener(TipoEventoListener l)
Altrimenti, genera un evento di tipo PropertyChange (del Quando si verifica un evento, chi lo
gruppo dei ChangeEvents), passando come parametri il genera chiama il listener di tutti gli
nome della propriet baseDate, il vecchio e il nuovo valore
ascoltatori registrati
Quando non si pi interessati, ci si de-
registra chiamando il metodo
removeTipoEventoListener(TipoEventoListener l)
7
Ricezione degli eventi
(codice leggermente semplificato) Programmazione visuale
public void propertyChange(PropertyChangeEvent evt)
{ Abbiamo visto come una delle caratteristiche
if (evt.getSource() == CalendarPage.this &&
(evt.getPropertyName().equals("baseDate")))
migliori di Java legata al riutilizzo del
/* cambiata baseDate */ codice
if (evt.getSource() == CalendarPage.this.getDayButton() && La parte di codice pi riutilizzabile chiaramente
(evt.getPropertyName().equals("background")))
/* cambiata la propriet background di DayButton */ la classe
/* ... e cos via ... */ Per queste caratteristiche, sarebbe
}
auspicabile avere un modo per costruire
Ma per fortuna, non davvero necessario scrivere
codice di questo tipo applicazioni in modo automatico
Gli strumenti di programmazione lo fanno per noi! Si definiscono le componenti dellapplicazioni, le
si selezionano e assemblano come se si
stessero assemblando chip su una scheda
8
Programmazione visuale Programmazione visuale
Spesso necessario modificare le caratteristiche Un oggetto (componente) comunque qualcosa in pi di un
delle componenti (colori, testo, database a cui la insieme di propriet
componente collegata) costituito anche da comportamenti
Le caratteristiche che possono essere modificate a I comportamenti di una componente sono rappresentati
tempo di design sono le propriet dagli eventi
Definiscono cosa pu accadere alla componente durante
possibile cos manipolare le propriet delle lesecuzione
componenti allinterno del costruttore automatico di Si decide cosa fare in seguito a un evento legando ad esso un
applicazioni (application builder tool) pezzo di codice
9
Programmazione visuale
10