laborator9 -Java

download laborator9 -Java

of 5

Transcript of laborator9 -Java

  • 7/25/2019 laborator9 -Java

    1/5

    TEHNOLOGII JAVA

    PENTRU DEZVOLTAREA APLICAIILORLUCRARE DE LABORATOR 9

    Appleturi Java.Componentele interfeei grafice.

    I. SCOPUL LUCRRII

    Lucrarea de fa are rolul de a prezenta i familiariza studentul cu modul deconstruire a unei interfee grafice utilizator. Se vor prezenta cteva componente vizualeutile, mpreuncu modul de creare i dispunere a acestora pe suprafaa unui applet.

    La sfritul acestei lucrri, studentul va avea posibilitatea s scrie mini-aplicaiiJava n care sutilizeze noiunile nvate.

    II. NOIUNI TEORETICE

    1. Construirea unei interfee grafice

    Interfeele graficeutilizatorGUI(graphic user interface) sunt o parte important

    a oricrui program. Pachetul java.awt (Abstract Window Toolkit) furnizeazfunionaliti extinse n acest sens.

    1.1 Componentele interfeei grafice

    Componentele Java sunt implementate printr-o serie de subclase ale superclaseijava.awt.Component i ale superclasei java.awt.MenuComponent.

    O modalitate de a grupa componentele grafice este urmtoarea: componentevizuale, componente container i componene meniu.

    Exist11 componente vizuale. n cele ce urmeazvom prezenta numai o partedintre acestea: Button, Checkbox, Choice, Label, List, TextArea, TextField. Pentru autiliza una dintre acestea ntr-o GUI, se va crea nti o instan prin apelareaconstructorului corespunztor, apoi se va aduga componenta unui container.Exist 4 componente container: Applet, Frame, Panel, Dialog (vor fi prezentate nurmtoarele lucrri de laborator). Container-ele sunt componente capabile sconinaltecomponente n cadrul lor.

    Cteva metode sunt implementate de toate componentele vizuale i container, nvirtutea motenirii din clasajava.awt.Component.

    getSize( ) returneaz dimensiunea unei componente. Tipul returnat esteDimension, care are datele membru publice heighti width.

    setForeground( ), setBackground( ) seteaz culoarea de scriere a textului irespectiv culoarea de fond pentru o component. Fiecare primete ca argument o

    1

  • 7/25/2019 laborator9 -Java

    2/5

    instana claseijava.awt.Color. Dacaceste culori nu se vor seta explicit, se vorutiliza culorile implicite ale containerului cruia i aparine componenta.

    setFont( ) determin font-ul pe care o component l va utiliza la scriereatextului. Dac nu se seteaz explicit un font, componenta va utiliza font-ulcontainerului su.

    setSize( ), setBounds( ) stabilesc dimensiunile unei componente. MetodasetSize() primete 2 argumente: width (lime) i height (nlime). MetodasetBounds() stabilete att poziia ct i dimensiunea. Poziia este specificatrelativ la containerul componentei, sau n cazul unei ferestre relativ la ecran. Oforma metodei are 4 argumente: x, y , width i height.

    setVisible( ) primete un argument de tip Boolean i stabilete daccomponentava fi vizibilsau nu. Se utilizeazn general pentru Frame-uri.

    1.2 Layout Managers

    Alte sisteme GUI ncurajeaz programatorul s gndeasc n termenii uneispecificri precise a dimensiunii i locaiei componentelor interfeei grafice. Java, nschimb, furnizeaz o serie de 5 layout managers, fiecare avnd propria politic dedispunere a componentelor n containere.

    Fiecare component Java are o dimensiune preferat. Dimensiunea preferateste n general cea mai micdimensiune necesarpentru a reprezenta componenta ntr-un mod vizual ce are sens. De exemplu, dimensiunea preferat a unui buton estedimensiunea etichetei sale, plus o micmargine de spaiu liber din jurul textului, plusdecoraiunile care marcheaz marginea butonului. Dimensiunea preferat estedependentde platform, deoarece decoraiunile marginii componentei variazde la un

    sistem la altul. Cnd un layout manageraeazcomponentele unui container, trebuie sia n considerare 2 criterii: politica sa i dimensiunea preferat a fiecrei componente.(Prima prioritate este de a respecta politica de aezare a componentelor, ignorndu-sedimesiunea preferata componentelor.)

    n aceast lucrare de laborator vom prezenta numai dou dintre cele 5 layoutmangers, i anume Flow Layout Manageri Border Layout Manager.

    Flow Layout Manager aranjeaz componentele n rnduri orizontale. Estemanagerul implicit pentru applet-uri i pentru panel-uri. ntotdeauna onoreazdimensiunea preferata componentelor.

    Border Layout Manager este managerul implicit pentru frame-uri. i divideteritoriul n 5 regiuni: NORTH, SOUTH, EAST, WEST i CENTER. Fiecare regiune

    poate fi vidsau poate conine o singurcomponent.

    2. Exemple

    // App1.javaimport java.applet.Applet;import java.awt.*;

    public class App1 extends Applet{public void init()

    {setLayout(new FlowLayout(FlowLayout.RIGHT));

    2

  • 7/25/2019 laborator9 -Java

    3/5

    Label label=new Label("Introduceti text: ");

    add(label);

    TextField text1=new TextField("");

    add(text1);TextField text2=new TextField("textul 2");

    add(text2);Button but=new Button("OK");add(but);

    }public void paint(Graphics g){

    g.drawString("Acesta este un exemplu",30,100);}

    }

    // App1.html

    Exerciiu:- Comentai prima linie de cod din metoda init()a applet-ului.

    -

    Modificai n App1.html limea applet-ului; setai width=350 i rencrcaipagina html.n ambele situaii observai i explicai rezultatele.

    //App2.javaimport java.applet.Applet;

    import java.awt.*;

    public class App2 extends Applet{

    public void init(){

    setLayout(new BorderLayout());Panel toolbar=new Panel();

    toolbar.setLayout(new FlowLayout(FlowLayout.LEFT));toolbar.setBackground(Color.orange);toolbar.add(new Button("Buton 1"));

    toolbar.add(new Button("Buton 2"));add(toolbar,BorderLayout.NORTH);

    TextArea txA1=new TextArea();StringBuffer s=new StringBuffer("Acesta este un text \n mai

    lung. Ca sa observati ");

    s.append("\n plasarea \n sagetilor \n de defilare");

    txA1.setText(s.toString());

    txA1.setFont(new Font("Arial",Font.ITALIC,24));txA1.setBackground(Color.blue);

    3

  • 7/25/2019 laborator9 -Java

    4/5

    txA1.setForeground(Color.white);

    add(txA1,BorderLayout.CENTER);

    TextArea txA2=new TextArea("Al doilea text.",5,20);

    txA2.setFont(new Font("Monospaced",Font.ITALIC|Font.BOLD,20));txA2.setBackground(Color.white);

    txA2.setForeground(Color.blue);txA2.setEditable(false);add(txA2,BorderLayout.SOUTH);

    Checkbox chk=new Checkbox("Bifati aici!");

    add(chk,BorderLayout.WEST);Panel option=new Panel();CheckboxGroup chgroup=new CheckboxGroup();

    option.add(new Checkbox("Prima",false,chgroup));option.add(new Checkbox("A doua",true,chgroup));

    add(option,BorderLayout.EAST);}

    }

    //App2.html

    //App3.java

    import java.applet.Applet;import java.awt.*;

    public class App3 extends Applet{

    public void init(){

    setBackground(Color.cyan);setFont(new Font("Arial",Font.BOLD,16));Label label1=new Label("Checkbox:");

    add(label1);

    Choice ch=new Choice();ch.addItem("Prima");ch.addItem("A doua");

    ch.addItem("A treia");ch.setForeground(Color.red);

    add(ch);Label label2=new Label("List:");add(label2);

    List list=new List(3,true);

    for(int i=1;i

  • 7/25/2019 laborator9 -Java

    5/5

    //App3.html

    III. MODUL DE LUCRU

    1. Se editeazcodul sursal programului Java folosind un editor de text disponibil(deex., se poate utiliza Notepad).

    2. Se salveaz fiierul cu extensia .java. Fiierul trebuie salvat la urmtoarea locaie:

    c:\JBulider7\jdk1.3.1\bin3. Compilarea mini-aplicaiei Java se va face din linia de comand. Se poate procedaastfel. Se deschide o fereastrMS-Dos: Start ->Run, se tiprete commandn csuade text i se apasbutonul OK. Printr-o schimbare de directoare i subdirectoare setrece la locaia: c:\JBulider7\jdk1.3.1\bin. Sau, se lanseazWindowsCommander.Se trece la locaia c:\JBulider7\jdk1.3.1\bin. Se deschide o fereastr MS-Dos:Commander ->Run Dos.

    4. Pentru compilare, se tiprete la prompterjavac nume_fiier_surs.javai se apasEnter. De ex., dacfiierul se numete Test.java, se va scriejavac Test.java. n cazuln care programul conine erori acestea vor fi semnalate i afiate n fereastraMS-Dos, dup care va apare iar prompter-ul. Dac programul nu conine erori i

    compilarea se face cu succes, atunci va apare numai prompter-ul.5. Se editeazfiierul .html. Se salveazn acelai director cu fiierul .classrezultat n

    urma compilrii cu succes a fiierului sursjava.6. Se ncarcfiierul .htmlntr-un browser Web (ex., Internet Explorer). Alternativ se

    poate utiliza comanda appletviewer nume.html.

    IV. TEM

    1.

    Se vor parcurge toate exemplele prezentate n platforma de laborator testndu-sepractic i explicnd rezultatele obinute.

    2. Scriei un applet Java care sconinurmtoarele: o zonde editare TextArea cu 5linii si 10 coloane, un buton cu eticheta OK i un grup de componente CheckBox.Setai textul zonei de editare la un anume ir de caractere. Utilizai diverse culori ifont-uri.

    5