joi, 7 februarie 2019

Tehnici de tratare a evenimentelor

Salut! În postările anterioare am expus algoritmul general de tratare a evenimentelor. Aici voi expune câteva tehnici care au bază acest algoritm, însă sunt structurate diferit. Din câte am reușit eu să studiez, am depistat trei tehnici. În cazul în care cunoașteți o altă tehnică aș fi recunoscătoare dacă ați descrie în comentariu pentru cititorii blog-ului. 

Deci, un eveniment poate fi tratat: 
1) în aceeași clasă cu ascultătorul

import java.awt.*; 
import java.awt.event.*;
class Tehnica_1 extends Frame implements ActionListener{
 TextField tf;

 Tehnica_1(){
  super("Aplicatia mea");
  setLayout(null);
  tf=new TextField();
  tf.setBounds(60,50,150,20);
  Button b=new Button("ok");
  b.setBounds(100,120,80,30);
  b.addActionListener(this);
  add(b);

  add(tf);
  setSize(300,200);
  setVisible(true);
 }
public void actionPerformed(ActionEvent e){
tf.setText("A fost click pe button!"); 
}

public static void main(String args[]){ 
 new Tehnica_1(); 
}
}

2) într-o clasă separată:
//clasa design
import java.awt.*;
class Tehnica_2 extends Frame{
 TextField tf;
 Tehnica_2(){
  super("Aplicatia mea"); setLayout(null);
  tf=new TextField();
  tf.setBounds(60,50,150,20);
  Button b=new Button("click me!");
  b.setBounds(100,120,80,30);
  b.addActionListener(new Extern(this));
  add(b);
  add(tf);
  setSize(300,200); 
  setVisible(true);
}
public static void main(String args[]){ 
 new Tehnica_2(); 
}

//clasa funcționalitate
import java.awt.event.*;
class Extern implements ActionListener{
Tehnica_2 obj;
Extern(Tehnica_2 obj){ this.obj=obj; }
public void actionPerformed(ActionEvent e){
obj.tf.setText("A fost click pe buton");
}
}

3) într-o clasă anonimă

import java.awt.*;
import java.awt.event.*;
class Tehnica_3 extends Frame{
TextField tf;
 Tehnica_3 (){
 setLayout(null);
 tf=new TextField(); 
 tf.setBounds(60,50,170,20);
 Button b=new Button("click me"); 
 b.setBounds(50,120,80,30);
 b.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
     tf.setText("a fost click ");
    }
 });

add(b);
add(tf);
setSize(300,300); 
setVisible(true);
}
public static void main(String args[]){ 
   new Tehnica_3 ();
}
}

Indiferent ce tehnică veți utiliza rezultatul va fi același: 


Stimați cititori, în special cei care activează ca programatori, scrieți în comentariu care este metoda utilizată în practică la elaborarea proiectelor reale! Mulțumesc anticipat! 

Sper că această postare vă este utilă.

Este binevenit orice comentariu!

Să aveți parte de o zi extraordinară !!!!!













2 comentarii:

  1. O alta modalitate de tratare a evenimentelor este prin utilizarea expresiilor lambda.

    Pentru a creea o expresie lambda, specificăm parametrii de intrare (dacă există) pe partea stângă a operatorului lambda -> și plasăm expresia sau blocul de instrucțiuni în partea dreaptă a operatorului lambda. De exemplu, expresia lambda (x, y) -> x + y specifică faptul că expresia lambda are două argumente x și y și returnează suma acestora.

    import java.awt.*;

    public class tehnica_4 extends Frame {

    tehnica_4()
    {
    Frame frame = new Frame("Expresie Lambda");
    frame.setLayout(null);
    TextField tf = new TextField();
    tf.setBounds(60, 50, 170 , 20);
    frame.add(tf);
    Button b = new Button("Apasa aici");
    b.setBounds(50, 120,80,30);

    b.addActionListener( e -> tf.setText("a fost click!") );
    frame.add(b);

    frame.setVisible(true);
    }
    public static void main(String[] args) {

    new tehnica_4();
    }
    }

    RăspundețiȘtergere
    Răspunsuri
    1. Ești foarte BRAVO Xenia! Mulțumesc mult de tot pentru colaborare!

      Ștergere

Vă mulțumesc pentru feedback!