|  
      
     | 
     
       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! | 
  
   
    |   | 
      | 
  
   
    |   | 
     
      
     | 
  
   
      | 
  
   
    |   | 
      | 
  
   
    |   | 
      |