|
Anche se il Jbuilder è innanzitutto un potente e comodo IDE, in un ambiente
di sviluppo moderno viene oggi considerata irrinunciabile la programmazione
visuale. Naturalmente, il Jbuilder consente l’uso effettivo delle tecniche
RAD. Abbiamo già notato la tabbed toolbar della palette che serve proprio
per contenere gli elementi da inserire nelle interfaccie sviluppate con il
GUI builder. Prima di descrivere in pratica come si lavora, occorre spendere
due parole per spiegare l’approccio alla visual programming adottata dal Jbuilder,
approccio per la verità comune ad altri ambienti di sviluppo Java.
La programmazione visuale è nata con il Visual Basic, dove viene gestita
utilizzando due tipi di file: le form e i programmi in Basic. L’ambiente di
sviluppo del Visual Basic infatti consente innanzitutto di disegnare la form,
personalizzare i componenti con le properties, e infine di agganciare alla
form il codice Basic richiamato dagli eventi. L’editor visuale del VB edita
soltanto le form, ovvero un formato di file specializzato per descrivere l’interfaccia.
In Java invece le cose sono più complesse, perché la descrizione dell’interfaccia
viene fatta in Java stesso. È necessario quindi rintracciare all’interno
di un sorgente Java il codice che genera l’interfaccia. I primi ambienti
di sviluppo inserivano all’interno dei programmi Java dei marcatori, cioè
dei commenti speciali utilizzati per distinguere il codice editato visualmente
da quello scritto dall’utente. Jbuilder invece è un vero two?way tool, che
consente in maniera paritaria la programmazione visuale e quella non visuale.
Questo significa che l’editor visuale è in sostanza un editor di codice: l’utente
disegna l’interfaccia, e l’IDE provvede a generare il codice corrispondente
all’interfaccia generata.
Tale codice è leggibile, comprensibile e soprattutto facilmente modificabile
dallo sviluppatore. Se infatti si cambia qualcosa nel codice Java che descrive
l’interfaccia, ritornando al designer si vedrà il risultato della modifica
che si è apportata senza dover lanciare il programma! In realtà il programmatore,
anche se ha molta libertà, non può fare proprio qualunque modifica se non
vuole perdere la possibilità dell’editing visuale. Il Jbuilder infatti utilizza
la struttura del programma per capire quale parte è modificabile dal designer
e quale invece è di pertinenza del programmatore. Un esempio illustrerà il
tutto. Creiamo un nuovo componente, per esempio un Frame. Jbuilder genererà
il codice necessario e nel browser comparirà una nuova classe, nel nostro
caso Frame1. Cliccando sulla linguetta source vediamo il sorgente. Esaminando
il sorgente, possiamo notare, tra le altre cose, la generazione di un metodo
che può sembrare ridondante: jbInit. Questo metodo viene richiamato dal costruttore,
e inizialmente fa poco: imposta soltanto un layout manager, l’XyLayout. L’utilizzo
del metodo jbInit è invece fondamentale per il Jbuilder, perché gli consente
di identificare il codice Java che descrive l’interfaccia.
Torniamo alla modalità di design , e aggiungiamo un bottone al frame, selezionandolo
dalla toolbar, e lo disegniamo nel frame. Tornando al source vedremo che
ora c’è un nuovo campo, button1. Inoltre è stato modificato il metodo jbInit
che imposta le proprietà del Button. Il perno della visual programming del
Jbuilder è tutto qui. Per ogni nuovo componente di interfaccia aggiunto ad
una classe, viene aggiunto un nuovo campo, e viene modificato il metodo jbInit
per impostare le caratteristiche del nuovo componente. Il Jbuilder mantiene
l’aspetto dell’interfaccia che il programmatore sta disegnando memorizzandolo
nel codice. In pratica il Jbuilder comprende il Java, e aiuta il programmatore
a disegnare l’interfaccia producendo il codice necessario per realizzare
quello che il programmatore ha disegnato. Il programmatore può anche andare
a modificare il codice generato dal Jbuilder. Per esempio posso modificare
l’etichetta del bottone, cambiando la linea button1.setLabel(“button”) in
button1.setLabel(“Click me!”).
Se torniamo alla visualizzazione grafica notiamo che anche nell’editor
grafico vedremo l’etichetta modificata! Il Jbuilder ha analizzato il codice
e ha rigenerato l’aspetto dell’interfaccia nell’editor così come la vuole
il programmatore. Molte modifiche possono essere fatte senza problemi, ma
non tutte. Per esempio non posso cambiare il nome del metodo jbInit. In tal
caso infatti il Jbuilder non troverebbe più la descrizione dell’interfaccia.
Se cambio nome a jbInit, passando alla visualizzazione design vediamo una
interfaccia vuota. In realtà compilando il codice e mandandolo in esecuzione,
ottengo effettivamente un frame con un bottone dentro. Il Jbuilder però non
è più in grado di modificare visualmente quel codice perché adesso non rispetta
più le sue convenzioni.
|