Interfe e grafice ii
Download
1 / 27

INTERFEŢE GRAFICE (II) - PowerPoint PPT Presentation


  • 156 Views
  • Uploaded on

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);

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'INTERFEŢE GRAFICE (II)' - candy


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

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.


  • 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


Î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: componente grafice declanşează un e


Interfe e i clase abstracte asociate evenimentelor
Interfeţe şi clase abstracte asociate evenimentelor componente grafice declanşează un e

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)



Clase awtevent
Clase AWTEvent prin:

  • 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.


Java.lang.Object prin:

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 prin:

  • 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


  • AdjustmentEvent – prin: 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 prin:

  • 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


  • MouseEvent prin: – 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.


  • PaintEvent prin: – 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.


ActionListener prin:

AdjustementListener

ComponentListener

ContainerListener

Java.util.EventListener

FocusListener

ItemListener

KeyListener

MouseListener

MouseMotionListener

TextListener

WindowListener


Interfe ele event listener semantice i metodele lor
Interfeţele prin:event listenersemantice şi metodele lor:


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


Evenimente specifice componentelor awt
Evenimente prin:specificecomponentelor AWT



Folosirea adaptorilor n tratarea evenimentelor
Folosirea adaptorilor în tratarea evenimentelor prin:

  • 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.


  • 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.


import java.awt.*; 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

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

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));