|
L'objectiu d'aquesta pràctica és familiaritzar-se
amb l'entorn JCreator mentre descobrim algunes de les seves funcionalitats
bàsiques.
|
|
|
|
Desenvolupament de la pràctica |
|
|
|
Revisarem l'estructura de finestres
de JCreator, descobrirem com obtenir ajuda
de la documentació del SDK, veurem
els avantatges de separar en carpetes diferents el codi
font de les classes compilades,
crearem una eina personalitzada per tal
de documentar els nostres projectes
i, finalment, aprendrem a crear classes
des de l'expert de creació de classes. |
|
|
|
Primers passos amb JCreator |
|
|
|
Tots els entorns de programació
tenen força elements en comú. Si hem treballat amb Microsoft
Visual C++, Delphi o
Visual Basic, la interfície de JCreator
ens resultarà molt familiar: un menú amb barra d'eines,
un editor de text i diverses finestres amb informació sobre l'estructura
del programa, les sortides, els avisos, etc.
Les
finestres de JCreator
JCreator distribueix la
gestió d'un projecte en una finestra
principal, la d'edició de codi font,i quatre
finestres complementàries que ofereixen al programador diferents
informacions de l'estat del projecte. El conjunt
de finestres és el següent:
- Finestra d'edició
de programes, distribuïda en tantes pestanyes com fitxers tinguem
oberts a la vegada.
- FileView. Ens
mostra, en forma d'arbre, l'estructura de fitxers de tot l'espai
de treball. A l'arrel tenim el nom de l'espai
i d'aquest en pengen els diferents projectes
amb les seves carpetes i fitxers. Es tracta d'un arbre amb una estructura
lògica, no física -això ben segur que ens sorprendrà
inicialment-. Si creem una carpeta a la finestra FileView,
aquesta carpeta no es crea pas al disc dur!. Tanmateix, des de
FileView
no podrem esborrar fitxers, només treure'ls de la vista.

Finestra FileView
- ClassView.
Aquesta finestra mostra la carcassa de la classe
activa a la finestra FileView
o a la finestra d'edició i ens permet una localització
d'elements i una navegació fàcils. Podem veure i accedir
a tots els mètodes
i variables
d'una classe
i també identificar i navegar pels paquets
importats. Provem-ho: fem doble-clic sobre
el mètode
main(String[] args) de
la classe
ProvaFuncionament. JCreator
ens porta al lloc on l'hem declarat dins la finestra
d'edició.
Finestra FileView
- PackageView.
De fet és una versió més extensa de ClassView.
Aquesta finestra, que s'obre alternativament a ClassView,
mostra l'estructura completa de paquets
del projecte
i fa possible la navegació per totes les classes
del projecte actiu.
Com que en el projecte modul1
no hem declarat cap paquet -això
ho farem més endavant-, JCreator
ens mostra el paquet
implícit amb les dues
classes que el componen:

Finestra Package View
- Output. És
la finestra que centralitza les sortides de compilació, depurat,
recerques i de les eines personalitzades. A través d'ella podem
saber si un programa compila bé o anar seguint les traces de
depuració, per exemple.
 |
Finestra Output |
La distribució d'aquestes finestres per l'àrea de treball
de l'entorn és completament personalitzable.
Podeu obrir-les o tancar-les a través dels botons
i també podeu posar-les on us agradi tot arrossegant
i deixant ("drag-and-drop")
amb el ratolí.
Finalment, si ens interessa concentrar-nos en el codi que estem escrivint,
sense interferències de finestres i menús, podem utilitzar
la vista en pantalla sencera
( View | Full Screen).
|
|
|
 |
Obtenir ajuda |
|
|
|
Per a programar amb agilitat és fonamental accedir fàcilment
a la documentació de les classes,
com a mínim a la documentació
de totes les llibreries que vénen
amb el SDK. Si hem instal·lat
correctament la documentació del
SDK al nostre ordinador, i li hem indicat
al JCreator on és, podem obrir
la documentació amb la combinació
de tecles Ctrl-F1. JCreator
actuarà de dues maneres diferents segons el context. Experimentem-ho:
- Activem l'entorn
i obrim ProvaFuncionament.java.
- A l'editor de text fem clic sobre String[]
- Premem Ctrl-F1.
JCreator ens obrirà
una finestra en una pestanya nova amb la documentació
disponible sobre la classe
String.
Aquesta és l'eina d'accés a l'ajuda més
còmoda. Si tenim una dificultat amb una classe
del SDK senzillament la marquem a l'editor i premem Ctrl-F1.
Què passa quan l'editor no troba
la paraula a la documentació del SDK?
- A l'editor ens situem sobre la paraula
void (es tracta d'una paraula
reservada i no d'una classe).
- Premem Ctrl-F1.
JCreator no troba
la classe
i ens obre una finestra com aquesta:

Finestra d'ajuda
A la finestra anterior podem investigar lliurement
la documentació del SDK:
fins i tot podem fer recerques interactives a la pestanya "Index".
Investigueu les possibilitats d'aquesta finestra com a font d'ajuda a
la programació
|
|
|
|
Separar el codi
font de les classes compilades |
|
|
|
Quan un projecte es fa gran pot contenir
dotzenes de fitxers. Si no especifiquem res en sentit contrari, el compilador
sempre col·loca els fitxers de bytecodes
amb l'extensió .class en el mateix directori
on estan les fonts (*.java). Això complica
bastant la llegibilitat del projecte. És millor que les fonts estiguin
en un directori i les classes compilades
en un altre. Així ho farem a partir d'ara
a les pràctiques d'aquest curs.
|
|
|
|
- Creem el directori que contindrà les classes
compilades a l'interior de la carpeta del
projecte.
Ha de tenir el nom de classes.
(Per exemple, c:/d110src/d110ws/modul1/classes).
- En JCreator obrim
l'opció de menú Project
| Settings. A la caixa "Output
path" hi escriurem el nom de la carpeta
de sortida, per exemple, C:\D110src\d110ws\modul1\classes.
Tanquem la finestra.
- Comprovem el funcionament compilant la classe
ProvaFuncionament.java.
El compilador ens ha deixat el fitxer ProvaFuncionament.class
al directori classes.
|
 |
- Els programadors de Java
habitualment tenen un mínim de tres carpetes interiors dins de
la carpeta d'un projecte: /src
que conté les fonts
del programa, /classes
amb els fitxers compilats
i /doc amb la documentació
del projecte. També és freqüent
la presència d'altres carpetes com /conf,
la qual conté fitxers de configuració, o /lib,
on es posen els paquets,
habitualment comprimits en fitxers *.jar,
procedents d'altres programadors
|
|
|
|
Les
eines personalitzades (creació d'una eina per a la documentació
dels nostres projectes) |
|
|
 |
A la pràctica anterior hem après a documentar
una classe amb el programa Javadoc.
Ara integrarem aquesta eina amb JCreator,
per tal de no haver de cridar-lo des de la línia de comandes, i
la configurarem de tal manera que ens
servirà per a crear tota la documentació
del projecte.
Com que a Java és freqüent
accedir a programes que funcionen des de la consola, JCreator
permet definir eines personalitzades que criden aquests programes i els
passen els paràmetres corresponents.
Al menú d'eines de l'entorn, hi
tenim deu botons per a eines personalitzables
.
Experimentem ara amb la creació d'una tasca
personalitzada:
- Anem a l'opció de menú Configure
| Option | Tools.
- Cliquem sobre el botó "New".
Això ens obre un menú amb diferents tipus de programes
per a integrar. Poden ser comandes del DOS,
fitxers d'ajuda, programes, creació de paquets
JAR, etc.
- Triem l'opció "Program"
i naveguem fins on tinguem instal·lat el SDK.
A la carpeta /bin
hi ha el fitxer javadoc.exe
que ja coneixem. El seleccionem.
- Aquesta acció dóna la tasca
d'alta. Ara ens apareix com una branca
de l'arbre tools. Quan
hi cliquem a sobre, podrem configurar l'eina
segons les nostres necessitats.
- A la caixa arguments
hi escriurem això:
-private -version -author -docfilessubdirs -d $[PrjDir]\doc
-classpath $[PrjDir]\classes -sourcepath $[PrjDir] $[JavaFiles] |
que vol dir que que engegui javadoc,
tot incloent-hi la versió
de programa, l'autor,
els camps privats
de les classes, que generi la documentació
a la carpeta doc
del directori del projecte,
i que busqui els fitxers amb les classes
al directori /classes.
No cal preocupar-se si de moment hi ha coses que no entenem.
- Com a opcions de l'eina,
li demanarem que desi en primer lloc els documents oberts (save
all documents first) i que capturi la sortida del programa a la
finestra de sortides de JCreator (Capture
output).
- Creem en el directori del projecte,
la carpeta doc,
per exemple,
c:/d110src/d110ws/modul1/doc>
|
Ja tenim un botó que ens crearà
la documentació de tot el projecte
per a qualsevol dels projectes
que fem, sempre que respectem la ubicació de les carpetes. Verifiquem
el correcte funcionament de la integració:
- Cliquem sobre el botó amb el símbol d'eina
número 1 (o piquem amb el teclat la seqüència de
"Control-nº de l'eina",
"Control-1" en aquest cas).
La finestra de sortides, a la pestanya "output",
ens anirà informant del procés de creació de la
documentació.
- Anem a la carpeta /doc
del directori del projecte.
Observarem un conjunt de documents
HTML (pàgines Web).
Obrim index.html.
A partir d'aquí podem navegar
sobre la documentació
de qualsevol paquet
i classe
del nostre projecte.
|
|
|
|
Escriure
una classe des d'un expert |
|
|
 |
L'expert
de classes és una de les eines que estan disponibles en pràcticament
tots els entorns de Java. Està pensat
per a facilitar l'execució de tasques repetitives durant el procés
d'escriptura de les classes (Java
és un llenguatge molt eficaç, però tediós pel
que fa a l'escriptura d'alguns processos).
Per a provar el seu funcionament escriurem una classe
nova, Llibre.java, que contindrà la informació
mínima per a definir qualsevol tipus de llibre.
- Obrim l'expert de classes,
"Project | New Class".
- Escrivim "Llibre"
com a nom de classe - atenció
amb la primera majúscula! - i deixem el destí del
fitxer tal qual suggereix l'expert.
- Deixem java.lang.Object
com a classe base.
Com ja sabem, qualsevol classe
que escrivim arrela a java.lang.Object.
Però podem triar qualsevol classe
no final que JCreator
pugui identificar.
- Com que encara no treballem amb paquets,
deixarem la caixa corresponent en blanc.
- Ara hem de triar les opcions
de la classe. Aquestes opcions les veurem
al detall quan estudiem el sistema de classes
de Java.
Marcarem "Public"
perquè volem que aquesta classe
es pugui veure des de fora del paquet
al qual pertany, deixarem sense marcar "Abstract"
i "Final".
També marcarem "Generate
default constructor" i "Generate
main method" per tal que l'expert
ens crei un mètode constructor
per a la classe
i un mètode principal.
-
Ara obrirem la pestanya "Variables".
Aquí podem crear la llista de variables
que utilitzarà la nova classe.
Hi entrem les següents dades, sense deixar les cometes, i tot
respectant majúscules i minúscules:
Tipus
|
Nom
|
Valor
|
|
String |
autor |
"Froufe, Agustín" |
marcar "Private" |
String |
títol |
"Java 2" |
marcar "Private" |
String |
editorial |
"Rama" |
marcar "Private" |
String |
ISBN |
"84-7897-429-6" |
marcar "Private" |
int |
pàgines |
673 |
marcar "Private" |
String |
ciutat |
"Barcelona" |
marcar "Private" |
String |
data |
"2000" |
marcar "Private" |
|
|
|
|
- Finalment, obrim la pestanya "Methods".
Afegirem dos mètodes
a la classe:
Tipus
|
Nom
|
|
String |
nomLlarg() |
marcar "Public" |
String |
nomCurt() |
marcar "Public" |
Llibre unllibre = new Llibre();
- Seguidament es demana la sortida per la consola
de quatre cadenes
(strings),
a través de System.out.print()
i System.out.println(),
entre elles les que produeixen els mètodes
nomCurt() i nomLlarg()
de l'objecte "unllibre"
(unllibre.nomCurt()
i unllibre.nomLlarg()).
- Executem des de JCreator
el fitxer Llibre.java
des de l'opció "Build
| Execute File". Si no hi ha problemes
de compilació, obtindrem la següent sortida:
|
|
|
|
- Observeu ara la documentació
de la classe; hi hem afegit algunes
idees noves!:
- Al text li podem afegir marques
HTML (HTML
tags) que després apareixen a la
documentació.
Com per exemple la parella <PRE> / </PRE>.
- A més de text podem afegir etiquetes.
En aquesta documentació
n'hem utilitzades bastantes: @author,
@version, @since,
@see, @return
i @param. Genereu
la documentació del projecte
amb la recentment estrenada eina
personalitzada número 1 i observeu
com les etiquetes
afecten al contingut dels fitxers HTML.
Aquí
trobareu una descripció més
àmplia del sistema d'etiquetes
- Heu d'anar en compte, però. El documentador
javadoc.exe no
llegeix cap etiqueta,
marca o text que estigui abans
de les clàusules import,
les quals solen estar a la capçalera del corresponent fitxer
*.java. Si el fitxer no conté cap
clàusula import,
no cal amoinars'hi...
|
|
Posem ordre a tot això: l'estructura
de directoris |
|
Ara ja estem en disposició d'establir l'estructura de directoris
que haurem de mantenir durant
tot el curs:
 |
- La carpeta ElMeuWorkspace correspon
a l'arrel d'on pengen els diversos projectes.
Podeu posar-li aquest nom o un altre que us abelleixi més: CursD110,
Curs_Java, etc. Aquesta carpeta només
conté un fitxer *.jcw que JCreator
crea per defecte i que no s'ha de manipular.
- La carpeta ElMeuProjecte que
ha de contenir tots els fitxers i subcarpetes d'un cert projecte.
En aquest curs, això vol dir una aplicació
Java o un Applet. En el cas
dels exercicis de cada mòdul, el nom d'aquesta carpeta se us
indica expressament. Aquesta carpeta conté uns fitxers *.jcp
i *.txt creats per
JCreator i que tampoc heu de manipular i, a més, els fitxers
*.java de codi font
Java (que escriureu vosaltres!).
- La carpeta classes que, com ja hem dit més amunt,
ha de contenir els fitxers Java compilats
*.class.
- La carpeta doc ha de contenir
la documentació de les classes,
elaborada amb javadoc.exe, si és que
se us demana.
Per a cadascun dels exercicis de cada mòdul se us demanarà
que envieu al vostre tutor la carpeta ElMeuProjecte,
arrel del projecte en què consisteix
l'exercici, no pas amb aquest nom, sinó amb el que s'hi us indiqui.
En respectar aquesta estructura, facilitareu moltíssim la correcció
al vostre tutor. Gràcies! |
|
|
|
|
 |
|
|
|
|