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);
setSize(300,200);
setVisible(true);
}
public void actionPerformed(ActionEvent e){
tf.setText("A fost click pe button!");
public void actionPerformed(ActionEvent e){
tf.setText("A fost click pe button!");
}
public static void main(String args[]){
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);
setSize(300,200);
setVisible(true);
}
public static void main(String args[]){
}
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");
}
//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");
}
}
import java.awt.*;
import java.awt.event.*;
class Tehnica_3 extends Frame{
TextField tf;
Tehnica_3 (){
setLayout(null);
tf=new TextField();
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");
Button b=new Button("click me");
b.setBounds(50,120,80,30);
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
tf.setText("a fost click ");
}
});
add(b);
});
add(b);
add(tf);
setSize(300,300);
setSize(300,300);
setVisible(true);
}
public static void main(String args[]){
}
public static void main(String args[]){
new Tehnica_3 ();
}
}
Sper că această postare vă este utilă.
Este binevenit orice comentariu!
Să aveți parte de o zi extraordinară !!!!!
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!
Este binevenit orice comentariu!
Să aveți parte de o zi extraordinară !!!!!
O alta modalitate de tratare a evenimentelor este prin utilizarea expresiilor lambda.
RăspundețiȘtergerePentru 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();
}
}
Ești foarte BRAVO Xenia! Mulțumesc mult de tot pentru colaborare!
Ștergere