java_programarea_vizuala.pdf

download java_programarea_vizuala.pdf

If you can't read please download the document

Transcript of java_programarea_vizuala.pdf

  • Programarea JavaLECIA NR. 3

    Iniierea n programarea vizual

    Petic Mircea

    [email protected]

    www.facebook.com/mircea.petic

  • Prima fereastr

    O fereastr este un obiect al clasei JFrame.

    Clasa JFrame este reinut n pachetul javax.swing.

  • Exemplu 1.

    import javax.swing.*;

    public class pv {

    public static void main(String args[]){

    JFrame fer=new JFrame(Prima fereastra!);

    fer.setSize(200,300);

    fer.setLocation(300,400);fer.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    fer.setVisible(true);

    }

    }

  • Metodele utilizate

    JFrame() constructor.

    void setSize(int width, int height) stabilete lungimea i limea ferestrei.

    void setLocation(int x, int y) stabilete poziia unde va fi afiat colul din stnga sus al ferestrei, n raport cu colul din stnga sus al ecranului.

    void setResizable(boolean ac) dac parametrul este false nu se pot modifica dimensiunile ferestrei.

  • Metodele utilizate

    void setDefaultCloseOperation(int a) stabilete ce se ntmpl atunci cnd se nchide fereastra.

    setVisible(boolean x) stabilete dac fereastra este vizibil (apare pe ecran) sau nu (dei exist, nu este afiat).

  • Exemplu 2. Clasa utilizator Fereastraimport javax.swing.*;class Fereastra extends JFrame {

    Fereastra (String Nume, int lat, int inalt, int dreapta, int stinga){

    super(Nume);setSize(lat, inalt);setLocation(dreapta, stinga);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true);

    }}public class pv{

    public static void main(String args[]){Fereastra f=new Fereastra(Prima, 100,200,25,100);

    }}

  • Ataarea componentelor ferestrei

    Structura care reine referinele ctre obiectele care se afl pe fereast este un obiect al clasei Container.

    Un obiect de tip JFrame sau dintr-o subclas a lui JFrame conine datele membru i metodele clasei Container.

    Accesul la containerul unei ferestre se face utiliznd o metod a clasei JFrame: Container getContentPane();

  • Pornind de la referinta getContentPane se pot realiza dou lucruri:

    Pot fi adugate ferestrei componentele dorite. Pentru aceasta se folosete metoda add() a clasei

    Container: Component add(Component comp) adaug o component

    a ferestrei. Toate componentele snt derivate din clasa Component.

    Pot fi aranjate n fereastr componentele adugate. Mecanismul din Java presupune existena

    gestionarilor de poziionare. Pentru a ataa unui container un gestionar de poziionare,

    se utilizeaz metoda clasei Container numit setLayout():

    void setLayout(LayoutManager gest) ataeaz unui container un gestionar de poziionare.

  • Exemplu: O fereastr cu dou butoane. Apsarea butoanelor nu are nici un efect.import java.awt.*;import javax.swing.*;class Fer extend JFrame {

    public Fer (String titlu) {super(titlu);setSize(200,100);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Container x=getContentPane();x.setLayout(new FlowLayout() );JButton A=new Jbutton(Buton 1); x.add(A);JButton B=new JButton(Button 2); x.add(B);setVisible(true);

    }}public class pv{

    public static void main(String args[]){Fer fp=new Fer(Doua butoane);

    }}

  • Interfata ActionListener

    Interfaa ActionListener asculttorul de evenimente.

    Un eveniment de tip ActionListener este apsarea unui buton.

    Interfaa conine antetul unei singure metode: actionPerformed (ActionEvent e)

    Pentru ca o component s poat rspunde la un eveniment de tipul ActionEvent, trebuie s implementeze clasa ActionListener.

  • Implementarea clasei ActionListener

    Clasa care include componenta (fereastra) s conin clauza

    implements ActionListener;

    S fie implementat metoda actionPerformed()

    Aceast metod se va executa automat atunci cnd este apsat butonul. Prin urmare, implementarea ei va scrie codul necesar aciunii dorite.

  • Clasa ActionEvent

    ActionEvent este clasa care conine metoda:

    String getActionCommand() returneaz irul de caractere asociat componentei care a transmis evenimentul. Metoda poate fi utilizat pentru a depista componenta care a transmis evenimentul.

  • Exemplu: Cnd se apas un buton, n fereastr va aprea irul reinut de butonul apsat.

    import java.awt.*;import java.awt.event.*;import javax.swing.*;class Fereastra extends JFrame implements ActionListener{

    Fereastra (String Nume){

    super(Nume); setSize(200,100); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Container x=getContentPane();x.setLayout(new FlowLayout() );JButton A=new JButton("Buton 1"); x.add(A);JButton B=new JButton("Buton 2"); x.add(B);A.addActionListener(this); .addActionListener(this);setVisible(true);

    }

    @Overridepublic void actionPerformed(ActionEvent ae) {

    if (ae.getActionCommand().compareTo("Button 1")==0) System.out.println("Ai apasat Buton 1");else System.out.println("Ai apasat Buton 2");

    }}public class testfer{

    public static void main(String[] args) {Fereastra fp=new Fereastra("Doua butoane");

    }}

  • Clasa JComponent Prin component se nelege un obiect care are o

    reprezentare grafic.

    Exemple de componente: butoane, liste, edit-uri, etichete...

    Fiecare tip de component rezult n urma instanierea unei clase specifice ei.

    De exemplu, un buton rezult n urma instanierii clasei JButton.

    Clasele tuturor componentelor enumerate snt subclase ale clasei JComponent.

    Putem folosi metodele clasei JComponent pentru orice alt component concret.

  • Metodele clasei JComponent

    void setBackground(Color c) metoda stabilete culoarea de fond a componentei.

    void setForeground(Color c) seteaz culoarea caracterelor.

    Constante de culoare: black, red, white, yellor, etc.

    Funcioneaz i sistemul RGB

  • Metodele clasei JComponent

    setFont(Font f) seteaz fontul cu care se scrie, stilul su i mrimea. Parametrul este un obiect al clasei Font. Clasa Font are constructorul:

    Font(String nume, int stil, int marime)

    unde:

    nume este numele fontului

    stil stilul, cu valorile uzuale Font.ITALIC, Font.BOLD, Font.PLAIN, se pot i sume: Font.ITALIC+Font.BOLD

    Marime marimea fontului

  • Exemplu:

    JButton A=new JButton(Apasa);

    A.setBackground(Color.red);

    A.setFont(new Font(Arial, Font.ITALIC, 20));

    A.setForeground(Color.GREEN);

  • Metodele clasei JComponent.

    void setToolTipText(String text); - metoda seteaz irul de caractere care va fi afiat atunci cnd cursorul mouse-ului staioneaz asupra componentei.

    void setEnable(boolean v) face o component s fie activat sau nu.

    void setVisible(boolean v) dac parametrul reine true, componenta este vizibil, altfel ea este invizibil.

  • Clasa Toolkit

    Clasa ToolKit este acea clas care permite ca programele scrise n Java s ruleze independent de rezoluia calculatorului.

    Metodele clasei ToolKit: public static Toolkit getDefaultToolkit()

    returneaz un obiect Toolkit (conine date despre setrile curente);

    Dimension getScreenSize() returneaz o referin ctre un obiect de tip Dimension care conine lungimea (width) i nlimea (height) n pixeli a ecranului.

  • Exemplu: programul care creeaz o fereastr, care iniial ocup ntreg ecranul.

    import java.awt.*;import javax.swing.*;class Fer extends Jframe {

    public Fer(String titlu){super(titlu);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Toolkit ec=Toolkit.getDefaultToolkit();Dimension dim=ec.getScreenSize();int i=dim.height; int l=dim.width;setSize(dim.width, dim.height); setVisible(true);

    }}public class pv{

    public static void main(String args[]) {Fer fp=new Fer(Fereastra pe intreg ecran);

    }}

  • Poziionarea componentelor

    Pentru aezarea componentelor n poziia dorit, putem s utilizm poziionarea absolut sau unul dintre gestionarii de poziionare existeni:

    FlowLayout

    GridLayout

    BorderLayout

    GridBagLayout

    CardLayout

  • Poziionarea absolut Coordonatele snt date n pixeli.

    Absena gestionarului se stabilete astfel:Container x=getContentPane();

    x.setLayout(null);

    Componentele trebuie dimensionate i poziionate cu urmtoarele metode: setBounds(int x, int y, int lat, int inal)

    (x,y) coltul stnga sus, lat i inal snt laimea i nlimea.

    setLocation(int x, int y)

    setSize(int lat, int lung)

  • Gestionarul de poziionare FlowLayout

    Componentele snt afiate pe linii, n ordinea n care au fost declarate (de la stnga la dreapta).

    Constructorii clasei FlowLayout: FlowLayout() distana ntre rnduri i componente

    5 uniti, alinierea CENTER.

    FlowLayout(int aliniere)

    FlowLayout(int aliniere, int dist_oriz, int dist_vert)

    setPrefferedSize(Dimension dim) se specific limea i nalimea componentei.

  • Gestionarul de poziionare GridLayout

    mparte suprafaa ferestrei n mai multe dreptunghiuri de suprafa egal i n fiecare dreptunghi astfel obinut se aeaz o component care este de cele mai multe ori extins ca suprafa, astfel nct s ocupe ntreaga suprafa a dreptunghiului care i revine.

    Constructorii:

    GridLayout()

    GridLayout(int nrlinii, int nrcoloane)

    GridLayout(int nrlinii, int nrcoloane, int sp_o, int sp_v)

  • Gestionarul de poziionare BorderLayout

    Clasa BorderLayout mparte suprafaa n 5 pri, n care se poate de aezat cte o component.

    Metoda add() are 2 parametri: componenta i partea n care se aeaz.

    x.setLayout(new BorderLayout());

    x.add(A,BorderLayout.SOUTH);

  • Gestionarul GridBagLayout

    Este o extindere a gestionarului GridLayout().

    Proporiile ntre linii i coloane pot fi diferite, iar componenta poate ocupa unul sau mai multe dreptunghiuri.

  • Gestionarul CardLayout

    Acest gestionar se caracterizeaz prin faptul c, la un moment dat, afieaz o singur component.

    Metodele: CardLayout() constructor

    next(Container parinte) afieaz urmtoarea component.

    last(Container parinte) se afieaz ultima component

    first(Container parinte) se afieaz prima component.

    addLayout(String nume, Component c) se adaug o component creia i se i atribuie un nume.

  • Componente de tip JButton

    Cu ajutorul de acest tip se creeaz butoane.

    Constructorii: JButton() buton fr text i fr imagine. JButton(String text) creeaz un buton cu un text. JButton(Icon icon) buton cu imagine de mici

    dimensiuni. JButton(String text, Icon icon) buton cu imagine de

    mici dimensiuni.

    Exemplu: Icon icon=new ImageIcon(om.gif);JButtonA=new JButton(icon);

  • Metode pentru JButton

    setVerticalTextPosition(constanta)seteaz poziia pe vertical a textului n raport cu imaginea: deasupra(JButton.TOP),

    (JButton.CENTER).

    setHorizontalTextPosition(constanta) seteaz poziia pe orizontal a textului n raport cu imaginea:

    (JButton.CENTER).

  • Exemplu cu JButton

    import java.awt.*;import javax.swing.*;class Fereastra extends JFrame{

    Fereastra (String Nume){

    super(Nume); setSize(200,100); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Container x=getContentPane();x.setLayout(new FlowLayout() );Icon icon = new ImageIcon("image.gif");JButton A=new JButton("Java", icon);A.setVerticalTextPosition(JButton.TOP);A.setHorizontalTextPosition(JButton.CENTER);x.add(A);setVisible(true);

    }}

  • Componentede tip JLabel

    Component pentru a afia text i imagini, cu rol lmuritor.

    JLabel(String s ) afiarea unui ir de caractere.

    JLabel(Icon icon ) pentru afia o imagine.

    JLabel(String text, Icon icon, int horizontalAlignment ) text + imagine + aliniere.

    setVerticalTextPosition/setHorizontalTextPosition(c)

  • Exemplu JLabelimport java.awt.*;import javax.swing.*;class Fereastra extends JFrame{

    Fereastra (String Nume){super(Nume); setSize(200,100); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Container x=getContentPane();x.setLayout(new FlowLayout() );Icon icon = new ImageIcon("image.gif");JLabel A=new JLabel("Java", icon,JLabel.CENTER);A.setVerticalTextPosition(JLabel.TOP);A.setHorizontalTextPosition(JLabel.CENTER);x.add(A);setVisible(true);}

    }

  • Componente de tip JPanel (cv.java)

    Componentele JPanel (paneluri) snt de tip container, adic au rolul de a conine pe suprafaa lor alte componente.

    JPanel() constructor, obiectul rezultat are gestionarul de poziionare FlowLayout().

    JPanel(LayoutManager layout) constructor, obiectul rezultat are gestionarul de poziionare transmis ca parametru.

    setLayout(LayoutManager layout) seteaz gestionarul de poziionare.

    add(Component c) adaug o component obiectului.

  • Componente de tip JTextField

    Componentele de acest fel snt utilizate pentru ca utilizatorul s introduc sau s afieze iruri de caractere de la tastatur, iruri pe care programul urmeaz s le prelucreze.

    JTextField(int nr) creaz un edit vid, dar care are o lime suficient pentru a vizualiza simultan nrde caractere.

    JTextField(String s) creaz un edit care iniial afieaz un ir de caractere.

  • Metode JTextField (pv.java)

    JTextField(String s, int nr) creaz un edit care iniial afieaz un ir de caractere i care are o lime suficient pentru a afia simultan un numr de nrcaractere.

    String getText() returneaz irul de caracterereinut de edit la un moment dat.

    void setText(String s) are rolul de a determina ca editul s conin irul de caractere specificat.

  • Componente de tip JComboBox

    Obiectele clasei JComboBox snt aa numitele liste, din care utilizatorul poate selecta o anumit opiune unic.

    JComboBox() constructor

    void AddItem(Object s) adaug listei o opiune.

    Object getSelectedItem() returneaz irul de caractere corespunztor opiunii selectate.

  • Metode JComboBox (cp.java)

    int getItemCount() returneaz numrul de opiuni.

    int getSelectedIndex() returneaz indexulopiunii selectate.

    Object getItemAt(int ind) returneaz obiectul reinut de item-ul de indice ind.

  • Componente de tip JCheckBox

    Obiectele clasei JCheckBox snt aa numitele butoane de validare. Fereastra poate conine unul sau mai multe butoane de validare.

    JCheckBox(String s) creeaz un buton de validare care conine irul de caractere transmis ca parametru.

    JCheckBox(String s, boolean v) creeaz un buton de validare care conine irul de caractere transmis ca parametru i care este marcat sau nu.

  • Metode JCheckBox (pv1.java)

    JCheckBox(String s, Icon f) creeaz un buton de validare care conine irul de caractere transmis ca parametru i o imagine.

    boolean isSelected() returneaz true dac butonul a fost selectat i false n caz contrar.

    String getText() returneaz irul de caractere reinut de buton.

  • Componente de tip JRadioButton

    Obiectele de tip JRadioButton snt asemntoare cu cele de tip JCheckBox, negrupate au acelai comportament, numai c arat ca nite butoane radio.

    Butoanele pot fi grupate, adic pot fi tratate ca un ntreg.

    Pentru a grupa butoanele se folosete un obiect al clasei ButtonGroup.

  • Metode JRadioButton (pv2.java)

    ButtonGroup() constructor;

    void add(AbstractButton b) adaug un buton grupului (clasa AbstractButton este superclas pentru Jbutton, JRadioButton, JCheckBox).

    Enumeration getElements(); -returneazpointer la grupul de butoane.

    int getButtonCount() returneaz numrul de butoane din group.

  • Meniuri

    n Java meniurile se construiesc prin utilizarea obiectelor mai multor clase: Clasa JMenuBar obiectele acestei clase se utilizeaz

    pentru a obine meniuri clasice, aflate n partea de sus a ferestrei.

    Clasa JMenu obiectele acestei clase au rolul de a nscrie n meniu anumite opiuni, care la rndul lor pot conine opiuni.

    Clasa JMenuItem o astfel de component care apare n meniu, arat ca o opiune i are rolul unui buton, adic selectat, conduce la o anumit aciune.

  • Meniuri 2 (pv3.java)

    Meniurile pot conine i submeniuri.

    Unei componente de tip JMenu i se adaug, pe lng alte componente de tip JMenuItem, o alt component, tot de tip JMenu.

    Acesteia din urm i se adaug componente de tip JMenuItem.

  • Cutii de dialog predefinite

    Importante pentru introducerea sau afiarea unor date.

    Pentru a folosi astfel de cutii, se utilizeaz clasa JOptionPane.

    Metodele snt statice.

    Cutiile de dialog snt predefinite, coninnd automat anumite componente.

  • Cutii de dialog de intrare

    public static String showInputDialog (Object mes) creeaz i afieaz n centrul ecranului o cutie de dialog care afieaz mesajul transmis ca parametru.

    n cazul n care utilizatorul apas Cancel, se returneaz pointer-ul null, motiv pentru care trebuie tratat aceast situaie.

  • Exemplu

    try{String intr=JOptionPane.showInputDialog(a=);if (intr.length()==0)

    System.out.println(intr vida);else System.out.println(intr);

    }catch(NullPointerException exc) {System.out.println(S-a apasat Cancel);

    }

  • Cutii de dialog de intrare - metodepublic static String showInputDialog (Object mes, Object val) la fel ca mai sus, doar c editul memoreaz de la nceput valoarea transmis de la al doilea parametru.

    String intr=JOptionPane.showInputDialog(a=, 0);

    public static String showInputDialog (Component par, Object mes) la fel ca mai sus, doar c are o component printe. Mai jos afiarea se face cu ajutorul clasei care descrie fereastra principal.

    String intr=JOptionPane.showInputDialog(this, a=);

    public static String showInputDialog (Component par, Object mes, Object val) la fel ca mai sus, cu toi parametrii.

  • Cutii de dialog pentru afiarea mesajelor

    public static String showMessageDialog

    (Component par, Object mes) afieaz o cutie de dialog cu un mesaj dorit.

    Exemplu:

    int a=125;

    JOptionPane.showMessageDialog(this, a=+a);

  • Cutii de dialog de confirmare

    O astfel de cutie de dialog afieaz trei butoane Yes, No i Cancel.

    public static int showConfirmDialog

    (Component par, Object mes); - metoda returneaz un ntreg a crui valoare este dat de butonul pe care-l apas utilizatorul: 0 Yes, 1 No i 2 Cancel.

  • Cutii de dialog cu opiuni

    Ele permit s selectm un set de butoane i s le schimbm numele conform propriilor dorine.

    public static int showOptionDialog (Component f_par, Object mesaj, String titlu, int tip_optiune, int tip_mesaj, Icon icon, Object [] vect , Object buton_selectat_initial )

  • Parametrii metodei (cdo.java)

    Component f_par fereastra printe Object mesaj - irul de caractere care apare afiat n

    cutie; String titlu titlul ferestrei int tip_opiune se alege una dintre opiunile

    urmtoare pentru a preciza tipul butoanelor (DEFAULT_OPTION, YES_NO_OPTION, YES_NO_CANCEL_OPTION, OK_CANCEL_OPTION);

    int tip_mesaj are ca efect selectarea unei mici imagini care este afiat pe cutie.

    Icon icon icon-ul ferestrei. Object[] vect vector de obiecte cu numele

    butoanelor. Object buton_selectat_iniial butonul care

    este selectat iniial.

  • Componente de tip JTextArea

    Componenta permite de a introduce text pe mai multe linii.

    Se poate de utilizat doar un singur font de o singur mrime.

    Cele mai importante metode ale clasei snt:

    JTextArea() constructor.

    void append(String S) adaug la sfritul irului reinut de component un alt ir.

  • Metode JTextArea

    void insert(String s, int pozitie) insereaz n text, ncepnd de la poziie un ir de caractere.

    void replaceRange(String str, int start, int end) nlocuiete irul dintre indicii start i end cu irul transmis ca parametru.

    setFont(Font f) seteaz fontul utilizat.

    String getText() returneaz irul de caractere coninut de component.

    String setText(String s) determin ca obiectul de tip JTextArea s rein irul s.

  • Metode JTextArea

    void setBackground(Color c) seteaz culoarea de fond a suprafeei care afieaz literele.

    String getSelectedText() returneaz irul de caracterul selectat.

    void selectAll() selecteaz ntreg textul reinut de component.

    int getSelectionStart() returneaz indicele primului caracter selectat.

    int getSelectionEnd() returneaz indicele ultimului caracter selectat.

  • Afiare n fereastr a obiectului de tip JTextArea (jta.java)

    Afiarea are loc mpreun cu obiectele de tip JScrollPane.

    JScrollPane panel = new JScrollPane(t);

    panel.setVerticalScrollBarPolicy (JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

    panel.setHorizontalScrollBarPolicy

    (JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

  • Cutii de tip Open/Save Astfel de cutii se utilizeaz n operaiile de ncrcare i

    salvare a fiierelor. Cutia de tip Open nu deschide fiierul, iar cutia de tip Save nu-l salveaz.

    Rolul lor este de a obine informaiile necesare deschiderii i salvrii fiierelor.

    Metodele: JFileChooser() constructor; int showOpenDialog(Component fer_parinte)

    afiseaz o cutie de dialog de tip Open. Valoarea returnat este 0, dac s-a apsat butonul Open sau este 1 dac s-a apsat butonul Close.

    int showSaveDialog(Component fer_parinte) afieaz o cutie de dialog de tip Save.

  • Metode auxiliare

    File getSelectedFile() metoda returneaz date despre fiierul selectat (furnizate de showOpenDialog() i showSaveDialog()).

    void addChoosableFileFilter(Filter x); - metoda se utilizeaz pentru a aduga un filtru cutiilor de tip Open i Save.

    setCurrentDirectory(File f) seteaz cutia astfel nct s se deschid ntr-un anumit folder.

  • Clasa File

    File() constructor

    File(String nume) construiete un obiect care conine numele unui fiier (folder)

    boolean isDirectory() returneaz true dac fiierul reinut de obiect este folder, sau false n caz contrar.

    String getName() returneaz numele fiierului;

    String getPath() returneaz numele ntreg al fiierului, inclusiv calea ctre el.

  • Clasa FileFilter (ctos.java)

    Este o clas abstract.

    Pentru a crea un filtru este necesar s rescriem dou metode ale sale:

    public String getDescription() trebuie s returneze un ir de caractere care va fi afiat de lista File of Type, list coninut de cutiile Open i Save.

    public boolean accept(File f) metod care returneaz true pentru un fiier care, fie are o extensiune dorit, fie este de tip folder, altfel returneaz false.

  • Componente de tip JTable Cu ajutorul componentelor de acest tip se

    creeaz tabele.

    Componenta de tip JTable se plaseaz de obicei pe o component de tip JScrollPane.

    JTable (Object[][] celule, object[] cap_t) constructor.

    celule matrice de referinte catre obiecteleafisate de celulele tabelului.

    cap_t este un vector de referinte catreobiectele afisate de capul de tabel.

  • Metode de lucru cu JTable (jt.java)

    Object getValueAt(int linie, int coloan) ntoarce o referin ctre obiectul memorat de celula respectiv.

    void setValueAt(Object ref, int linie, int coloan) memoreaz referina ctre obiect n linia i coloana dat de indicii transmii.

    JTable(int n_linii, int n_coloane) este un alt constructor al tabelului, n care se creeaz un tabel cu n_linii i n_coloane.

  • Evenimente

    Exist mai multe tipuri de evenimente i ele snt tratate de asculttori diferii:

    Evenimente de tip Action

    Evenimente de tip MouseEvent

    Evenimente de tip FocusEvent

    Evenimente de selectare a item-urilor

    Evenimente pentru fereastr

  • Evenimente de tip Action

    Aceste evenimente snt produse de componente de tipurile: JButton atunci cnd se execut click pe suprafaa

    butonului; JComboBox atunci cnd se opereaz o selecie n

    list; JTextField atunci cnd se scrie n edit i se

    tasteaz enter; JCheckBox, JRadioButton atunci cnd se bifeaz

    sau se debifeaz butonul respectiv; JMenuItem atunci cnd se selecteaz opiunea

    respectiv.

  • Pentru a capta evenimentul trebuie ca:

    Fereastra care include componentele s implementeze interfaa ActionListener.

    Fiecare component care trebuie s emit un astfel de eveniment trebuie s fie adugat de evenimente de tip ActionEvent.

  • Interfaa ActionListener (eva.java)

    void actionPerformed(ActionEvent e) metod prin care se programeaz aciunea care trebuie ntreprins, dac evenimentul s-a produs.

    Evenimentul care s-a produs are tipul ActionEvent.

    String getActionCommand() returneaz un ir de caractere dup care se poate identifica componenta care a transmis evenimentul.

    void addActionListener(ActionListener k) prin care se adaug componenta gestionarului curent (al ferestrei).

  • Evenimente de tip MouseEvent

    Aciunile executate cu ajutorul mouse-ul

    Componenta care recepioneaz astfel de evenimente trebuie s implementeze una sau dou dintre interfee:

    MouseListener;

    MouseMotionListener.

  • Metode MouseListener

    mouseClicked(MouseEvent e) se execut atunci cnd se efectueaz click pe suprafaa componentei.

    mouseEntered(MouseEvent e) se execut atunci cnd cursorul mouse-ului ajunge pe suprafaa grafic a componentei;

    mouseExited(MouseEvent e) se execut atunci cnd cursorul prsete suprafaa grafic a componentei;

    mousePressed(MouseEvent e) se execut atunci cnd am apsat butonul mouse-ului.

    mouseRelease(MouseEvent e) se execut atunci cnd s-a eliberat butonul mouse-ului.

  • Metode MouseMotionListener

    MouseDragged() metoda se execut n mod continuu, ct timp am apsat un buton al mouse-ului i deplasm cursorul (ca la operaia Drag and Drop)

    MouseMoved(MouseEvent e) se execut n mod continuu, ct timp cursorul mouse-ului se plimb suprafaa componentei.

  • Asculttorii MouseEvent (eme.java)

    void addMouseListener(MouseListener k);- pentru asculttorul MouseListener

    void addMouseMotionListener (MouseMotionListener k); - pentru asculttorul MouseMotionListener;

  • Evenimente de tip FocusEvent (efe.java) Prin faptul c o component are focus-ul, se nelege c respectiva

    component este pregtit s primeasc date sau comenzi de la tastatur.

    O component primete focus-ul dac se execut click pe suprafaa ei.

    Pentru ca focus-ul s aparin componentei urmtoare se apas Tab. Se poate programa ca o anumit component s primeasc focus-ul.

    void requestFocus() Pentru a rspunde la evenimente, se implementeaz interfaa

    FocusListener cu cele dou metode: void focusGained(FocusEvent e) eveniment de primire

    a focusului void focusLost(FocusEvent e) eveniment de pierdere a

    focusului. Component getComponent(); - metoda returneaz o

    referin la componenta care a recepionat eveniment.

  • Evenimente de selectare a item-ilor (esi.java)

    Evenimente pentru componente de tip CheckBox sau ComboBox.

    Ele trateaz n mod direct, imediat ce selectare a avut loc. Se implementeaz interfaa ItemListenervoid itemStateChanged(ItemEvent s) metoda care

    se apeleaz de cte ori se produce o deselectare sau o selectare.

    int getStateChange() returneaz o valoare de tip corespunztoare uneia din cele dou posibiliti de generare a evenimentului.

    Componentele care pot transmite astfel de evenimente conin metoda

    addItemListener(ItemListener a)

  • Evenimente pentru fereastr

    Obiecte de tip JFrame pot transmite urmtoarele evenimente: WINDOW_ACTIVATED se produce atunci cnd fereastra

    devine activ WINDOW_OPENED cnd a fost deschis fereastra WINDOW_DEACTIVATED se produce cnd fereastra

    devine inactiv. WINDOW_CLOSING se produce atunci cnd se nchide

    fereastra. WINDOW_ICONIFIED se produce atunci cnd se execut

    click pe fereastra minimizat WINDOW_CLOSED se produce atunci cnd fereastra a

    fost nchis.

  • Metodele WindowListener

    Antetele ActionListener: public void windowOpened(WindowEvent e)

    public void windowClosing(WindowEvent e)

    public void windowClosed(WindowEvent e)

    public void windowIconified(WindowEvent e)

    public void windowDeiconified(WindowEvent e)

    public void windowActivated(WindowEvent e)

    public void windowDeactivated(WindowEvent e)

    Metoda clasei JFrame:void addWindowListener(WindowListener a)