Interfe e grafice ii
This presentation is the property of its rightful owner.
Sponsored Links
1 / 27

INTERFEŢE GRAFICE (II) PowerPoint PPT Presentation


  • 101 Views
  • Uploaded on
  • Presentation posted in: General

INTERFEŢE GRAFICE (II). AWT (Abstract Window Toolkit). C rearea unei aplicaţii grafice presupune: Design Crearea unei suprafeţe de afişare (cum ar fi o fereastră) pe care vor fi aşezate obiectele grafice care servesc la comunicarea cu utilizatorul (butoane, controale de editare, texte, etc);

Download Presentation

INTERFEŢE GRAFICE (II)

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Interfe e grafice ii

INTERFEŢE GRAFICE (II)


Awt abstract window toolkit

AWT (Abstract Window Toolkit)

Crearea unei aplicaţii grafice presupune:

Design

  • Crearea unei suprafeţe de afişare (cum ar fi o fereastră) pe care vor fi aşezate obiectele grafice care servesc la comunicarea cu utilizatorul (butoane, controale de editare, texte, etc);

  • Crearea şi aşezarea obiectelor grafice pe suprafaţa de afişare în poziţiile corespunzătoare;

    Funcţionalitate

  • Definirea unor acţiuni care trebuie să se execute în momentul când utilizatorul interacţionează cu obiectele grafice ale aplicaţiei;

  • "Ascultarea" evenimentelor generate de obiecte în momentul interactiunii cu utilizatorul şi executarea acţiunilor corespunzătoare aşa cum au fost ele definite.


Tratarea evenimentelor

Tratarea evenimentelor

Un evenimenteste produs de o actiune a

utilizatoruluiasupra uneicomponente grafice si

reprezinta mecanismulprin care utilizatorul

comunica efectiv cu programul.


Interfe e grafice ii

  • Tratarea evenimentelor în Java este bazată pe modelul delegării evenimentelor. (Delegation Event Model)

    Elementele principale sunt:

  • Clase eveniment ce încapsulează informaţia despre diferite tipuri de interacţiuni cu utilizatorul

  • Obiecte ce generează evenimente, informează event listeners când acestea apar şi oferă informaţii despre ele

  • Obiecte event listener ce sunt informate de o sursă de evenimente când apar acestea, pentru a trece la o anumită acţiune.

  • Tratarea evenimentelor într-o aplicaţie GUI, folosind modelul delegării evenimentelor, poate fi împărţită în două sarcini când se construieşte aplicaţia:

  • Setarea propagării evenimentelor de la sursa lor la event listeners

  • Furnizarea acţiunii ce trebuie efectuate în event listeners când se recepţionează evenimentul


Interfe e grafice ii

În lucrul cu interfeţe grafice, o acţiune asupra unei componente grafice declanşează un eveniment. Un eveniment este un obiect al unei clase tipEvent din următoarea ierarhie de clase:

Object (din pachetul java.lang)

EventObject (din pachetul java. util)

AWTEvent (din pachetul java. awt)

tipEvent (din pachetul java.awt.event)


Principalele tipuri de evenimente sunt

Principalele tipuri de evenimente sunt:


Interfe e i clase abstracte asociate evenimentelor

Interfeţe şi clase abstracte asociate evenimentelor

Fiecărui tip tip de eveniment îi este asociat o interfaţă tipListenerîn

pachetul java.awt.event.

Cu excepţia tipurilor Action, Adjustment, Item şi Text, aceste

interfeţe suntimplementate în acelaşi pachet de clasele abstracte

tipAdapter corespunzătoare; metodele din aceste clase nu sunt

abstracte, dar prevădacţiunea nulă.

EventListener (interfaţă din pachetul java.util)

tipListener (interfaţă din pachetul java.awt.Event)

tipAdapter (clasă abstractă din pachetul java.awt.Event)


Interfe e grafice ii

  • Metodele din aceste interfeţe şi clase sunt declarate prin:

  • public void nume-metodă (tipEvent e)

    şi corespund câte unui "subeveniment" al evenimentului identificat prin tip.


Clase awtevent

Clase AWTEvent

  • Subclasele clasei AWTEvent se pot împărţi în două grupe:

  • evenimente semantice – reprezintă interacţiuni ale utilizatorului cu GUI. De exemplu apăsarea unui buton, selectarea unei intrări în meniu, selecţia unui checkbox, scrolling, schimbarea textului într-un câmp text. Evenimente: ActionEvent, AdjustmentEvent, ItemEvent, TextEvent.

  • evenimente de nivel scăzut – reprezintă intrări de nivel scăzut sau operaţii pe ferestre. Câteva evenimente de acest fel alcătuiesc un eveniment semantic. De exemplu apăsarea unui buton presupune apăsarea şi eliberarea unui buton a mouse-ului. Exemple: ComponentEvent, ContainerEvent, FocusEvent, KeyEvent, MouseEvent, PaintEvent, WindowEvent.


Interfe e grafice ii

Java.lang.Object

Java.util.EventObject

Java.awt.AWTEvent

ComponentEvent

TextEvent

ActionEvent

AdjustementEvent

ItemEvent

InputEvent

WindowEvent

ContainerEvent

FocusEvent

PaintEvent

KeyEvent

MouseEvent


Clase de evenimente semantice

Clase de evenimente semantice

  • ActionEvent – evenimente generate de acţiuni efectuate asupra componentelor GUI. Componentele GUI care generează acest eveniment sunt:

  • Button – când se face click

  • List – când pe un element al listei se face dublu click

  • MenuItem – când se selectează un element din meniu

  • TextField – când se apasă ENTER

    ActionEvent are următoarele metode:

  • String getActionCommand() – returnează numele comenzii asociate cu această acţiune: este o etichetă de buton, numele elementului din listă, din meniu sau text, depinde de tipul elementului ce generează acest eveniment.

  • int getModifiers() – returnează suma constantelor modificator corespunzător modificatorilor tastatură ţinuţi apăsaţi în timpul acestei acţiuni:

    • public static final int SHIFT_MASK

    • public static final int CTRL_MASK

    • public static final int META_MASK

    • public static final int ALT_MASK


Interfe e grafice ii

  • AdjustmentEvent – evenimentele sunt generate când se fac ajustări pe anumite componente de tip Scrollbar. Pune la dispoziţie o metodă:

  • int getValue()

  • ItemEvent – se generează când un element este selectat sau deselectat într-o componentă ItemSelectable:

  • Checkbox

  • CheckboxMenuItem

  • Choice

  • List

  • Metode:

  • Object getItem() – returnează obiectul care a fost selectat sau deselectat. Eticheta unui Checkbox, CheckboxMenuItem, element din Choice sau List se returnează ca un obiect String.

  • int getStateChange() – specifică dacă este selecţie sau deselecţie

    • public static final int SELECTED

    • public static final int DESELECTED

  • TextEvent – când conţinutul unei componente text se schimbă. Valabil pentru TextArea şi TextField.


Evenimente de nivel sc zut

Evenimente de nivel scăzut

  • ComponentEvent– este generat când o componentă (clasa Component şi subclasele ei) este ascunsă, mutată, redimensionată. Aceste evenimente sunt tratate intern de AWT, nu sunt tratate direct de aplicaţie (de obicei).

  • Component getComponent() – returnează o referinţă la acelaşi obiect ca şi getSource(), dar de tip Component.

  • ContainerEvent – este generat când o componentă este adăugată sau scoasă dintr-un container.

  • FocusEvent – generată când o componentă primeşte sau pierde focusul (adică primeşte intrarea de la tastatură). De obicei componenta cu focus este evidenţiată.

  • Metoda getID() se foloseşte pentru a afla dacă componenta primeşte (FocusEvent.FOCUS_GAINED) sau pierde (FocusEvent.FOCUS_LOST) focusul.

  • KeyEvent – este subclasă a clasei abstracte InputEvent. Este generată când utilizatorul apasă sau eliberează o tastă. Metoda getID() returnează unul din următoarele id-uri:

  • public static final int KEY_PRESSED

  • public static final int KEY_RELEASED

  • public static final int KEY_TYPED

  • Metoda getWhen() – returnează timpul când a avut loc evenimentul.

  • int getKeyCode() – returnează codul asociat tastei (definite în KeyEvent)

  • char getKeyChar() – se obţine codul Unicod ce rezultă în urma tastării


Interfe e grafice ii

  • MouseEvent – este subclasă a clasei abstracte InputEvent.

  • Se generează când utilizatorul mişcă mouse-ul sau apasă un buton de-al lui. Acţiunea este identificată de următoarele constante (returnată de getID()):

  • public static final int MOUSE_PRESSED

  • public static final int MOUSE_RELEASED

  • public static final int MOUSE_CLICKED

  • public static final int MOUSE_DRAGGED

  • public static final int MOUSE_MOVED

  • public static final int MOUSE_ENTERED – intră pe suprafaţa unei componente

  • public static final int MOUSE_EXITED

  • Se poate folosi getWhen().

  • Metodele int getX(), int getY(), Point getPoint() – relativ la componenta care a generat evenimentul.

  • int getClickCount() – numărul de click-uri asociate cu evenimentul.


Interfe e grafice ii

  • PaintEvent – este generat când o componentă trebuie să apeleze metodele paint() sau update(). Sunt tratate intern de AWT, nu trebuie tratate direct de către aplicaţie.

  • WindowEvent – este generat când se efectuează o operaţie asupra unei ferestre (Window sau subclasele ei). Operaţia este identificată de un id (int getID()):

  • public static final int WINDOW_OPENED – se generează o singură dată când fereastra este creată, deschisă şi vizibilă prima oară.

  • public static final int WINDOW_CLOSING – se generează când acţiunea utilizatorului spune că fereastra trebuie închisă. Aplicaţia trebuie să apeleze explicit fie setVisible(false), fie dispose().

  • public static final int WINDOW_CLOSED – după închiderea ferestrei în urma unui setVisible(false) sau dispose()

  • public static final int WINDOW_ICONIFIED – după minimizare

  • public static final int WINDOW_DEICONIFIED

  • public static final int WINDOW_ACTIVATED – primeşte intrare de la tastatură

  • public static final int WINDOW_DEACTIVATED

  • Window getWindow() – returnează obiectul Window care a generat evenimentul.


Interfe e grafice ii

ActionListener

AdjustementListener

ComponentListener

ContainerListener

Java.util.EventListener

FocusListener

ItemListener

KeyListener

MouseListener

MouseMotionListener

TextListener

WindowListener


Interfe ele event listener semantice i metodele lor

Interfeţele event listenersemantice şi metodele lor:


Interfe ele event listener de nivel sc zut i metodele lor

Interfeţele event listenerde nivel scăzut şi metodele lor:


Evenimente specifice componentelor awt

Evenimentespecificecomponentelor AWT


Evenimente pentru componente si containere awt

Evenimente pentru componente  si containere AWT


Folosirea adaptorilor n tratarea evenimentelor

Folosirea adaptorilor în tratarea evenimentelor

  • Un adaptor este o clasă abstractă care implementează o interfaţă de tip "listener".

  • Scopul unei astfel de clase este ca la crearea unui "ascultator" de evenimente, în loc să implementăm o anumită interfaţă şi implicit toate metodele sale, o să extindem adaptorul corespunzător interfeţei respective (dacă are) şi să supradefinim doar metodele care ne interesează. Pentru a facilita implementarea interfeţelor listener, în pachetul java.awt.event se defineşte o clasă adaptor pentru fiecare interfaţă listener de nivel scăzut.


Interfe e grafice ii

  • Exemplu : Un exemplu sugestiv în exemplificarea adaptorilor este următorul: crearea unei ferestre care se va putea închide: cu butonul standard marcat cu 'x' din colţul dreapta sus, sau cu combinaţia de taste Alt+F4 sau prin apăsarea butonului creat în fereastră "Quit". În mod normal, fără a utiliza adaptori realizarea acestor evenimente implică implementarea interfeţei WindowListener cu implementarea tuturor metodelor sale (şapte metode are interfaţa), lucru incomod în realizarea unei aplicaţii.


Interfe e grafice ii

import java.awt.*;

import java.awt.event.*;

public class SimpleWindowOne extends Frame {

Button quitButton;

public SimpleWindowOne() {

super("SimpleWindowOne");

quitButton = new Button("Quit");

setLayout(new FlowLayout(FlowLayout.CENTER));

add(quitButton);

quitButton.addActionListener(new ActionListener()

{ public void actionPerformed(ActionEvent evt)

{if (evt.getSource() == quitButton)

terminate();

}

});

addWindowListener(new WindowAdapter()

{ public void windowClosing(WindowEvent evt)

{ terminate();

}

});

pack();

setVisible(true);

}

private void terminate()

{System.out.println("Quitting the application.");

dispose();

System.exit(0);

}


Clase adapter

Clase Adapter

class BauturiAdapter1 implements ActionListener{     Bauturi b;     BauturiAdapter1 ( Bauturi b ){             this.b =  b;     }     public void actionPerformed( ActionEvent e ){         b.Bautura_Cafea();     } }

  • Clasa care implementeza interfata grafica ar trebui sa  contina: Bauturi b = ...; Button buton_ceai, buton_cafea, buton_suc; ... buton_ceai.addActionListener( new BauturiAdapter1(b)); buton_cafea.addActionListener( new BauturiAdapter2(b)); buton_suc.addActionListener( new BauturiAdapter3(b));


  • Login