Jump to content

[JAVA] Evenimente: WindowListener


Shirogane
 Share

Recommended Posts

Teorie: În JAVA evenimentele au un concept simplu. Acest concept se bazează pe faptul că o sursă va genera un eveniment ce va fi trimis unui ascultător(listener). Pe scurt: event source -> listener. Menţiune: pot fi şi mai multi ascultători(listeners) şi asta e foarte important!

Un eveniment este o schimbare de stare a obiectului sursă, ofer un exemplu simplu pentru a înţelege mai bine: la apăsarea unui buton de pe o interfaţă, se va întâmpla ceva.

Un event source(sursă de evenimente) reprezintă un obiect instanţiat al unei clase care va implementa interacţiunea cu utilizatorul a componentelor grafice. Un exemplu de componentă poate fi şi un buton, când acesta îşi schimbă starea(este apăsat) va genera un eveniment care va fi procesat de ascultătorii specifici care sunt ataşaţi. Orice tip posibil de eveniment are o metodă specifică care va permite ataşarea de o componentă pentru prelucrare şi monitorizare. 

 

 

Forma unei astfel de metode este: 

public void addTipListener(TipListener obiect)
public void removeTipListener(TipListener element)

Clasa de bază pentru gestinoarea evenimentelor: 

java.util.EventObject 

Un exemplu simplu pentru demonstrare:
 

import java.awt.*;
import java.awt.event.*;

public class Main {

    public static void main(String[] args) {

        Frame frame = new Frame("Exemplu");


        Button button = new Button("Apasă butonul! ");


        button.setBounds(100, 100, 100, 50);


        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent element) {

                System.out.println("B-Zone");
            }
        });


        frame.add(button);


        frame.setSize(369, 369);


        frame.setLayout(null);


        frame.setVisible(true);


        frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent windowEvent) {
                System.exit(0);
            }
        });
    }
}

Am ales o interfaţă AWT de această dată. Clasa pentru implementare evenimente este 

java.awt.event.*

La rulare, o să apară o interfaţă grafică de dimensiuni 369x369 albă. Un buton pe care scrie Apasă butonul! o să fie aproape centrat în mijlocul interfeţei. La apăsarea acestuia, în consolă va apărea textul B-Zone o singură dată. Buton va putea fi apăsat în continuare generând acelaşi text pe o nouă linie la fiecare apăsare a acestuia. Am folosit WindowListener pentru a face posibilă această comandă a butonului.

 

Sunt o mulţime de evenimente ce pot fi generate în Java. Este foarte importantă pentru început înţelegerea acestui concept. Pe acelaşi principiu  funcţionează şi restul evenimentelor posibile. Mai sus am avut un WindowListener pentru a trata evenimentul de tip Window pe care l-am ales pentru exemplu. La fel funcţionează şi un KeyListener de exemplu, doar că la acesta tratăm evenimente de tastatură. 

 

 

Pentru acest prim tutorial am ales un WindowListener pentru că mi s-a părut mult mai uşor de înţeles. Sper că este pe înţelesul tuturor ceea ce am arătat aici, orice întrebare sau sugestie de viitor o puteţi face în comentarii, respectând regulamentul secţiunii.

 

Edited by Shirogane
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.