Events
Events yani
Türkçesi ile olaylar , java gui ile yazdığımız programda olaylara tepki üretmemizi
sağlar. Örneğin bir butona basılması bir olaydır ve biz bu olayı java da
dinleyip basılma olayı neticesinde programın ne yapması gerektiğini
belirleyebiliriz.
Event lar
componentler için çeşitlilik gösterir. Yani buton için “ActionEvent”, mouse için
“MouseEvent” , klavyede basılan tuşlar için (key) “KeyEvent” ,... gibi örneklendirilebilir.
Bu event ları dinleyip tepki oluşturabileceğimizi söylemiştik. Bu iş için “listener”
dediğimiz kavramları kullanıyoruz. Bunlara örnek , “ActionListener”,
“KeyListener” , “MouseListener”,... gibi çoğaltılabilir.
<ad>Event.......<ad>Listener genelde mantık bu şekildedir.
Buton Events
Butondaki olayları
ActionEvent sınıfı ile ,dinleme isini ise ActionListener ara yüzü(interface)
ile dinliyoruz. Sonuç olarak istediğimizi yaptırmak için ise “actionPerformed(
)” metodunu kullanıyoruz. Butona basıldıktan sonra ne olmasını istiyorsak bu
metodun içine yazıyoruz.
/////////////////////////////////////////////////////////////////////////
public void actionPerformed(ActionEvent event){
//Kodlar
buraya
}
////////////////////////////////////////////////////////////////////////
Örnek
İlk örneğimizde
bir buton ve textfield olsun. Butona basıldığında textfield da butonda yazan yazı
textfield da yazsın.
import
java.awt.FlowLayout;
import
java.awt.event.ActionEvent;
import
java.awt.event.ActionListener;
import
javax.swing.JButton;
import
javax.swing.JFrame;
import
javax.swing.JTextField;
public class
ButonDemo extends JFrame implements ActionListener{
JButton buton = new
JButton("Basma!");
JTextField text = new
JTextField(10);
public ButonDemo( ){
super("ButonDemo");
setSize(200, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
setLayout(new FlowLayout( ));
add(text);
add(buton);
buton.addActionListener(this);
}
public void actionPerformed(ActionEvent event){
text.setText(buton.getText(
));
}
public static void main(String[ ] args) {
ButonDemo demo = new ButonDemo( );
}
}
|
Burada
dikkat etmemiz gereken yerler
1.
“ActionListener” i implement etmek
2.
Butona “ActionListener” eklemek
3.
“actionPerformed( )” metodunu eklemek(metodun yazılışına
dikkat)
bunlardan birisini unutursak program çalışmayacaktır.
Ekran Görüntüsü
Örnek 2
2 tane
butonumuz olsun bu butonlar açılışta ortada sonra soldakine basınca sola sağdakine
basınca sağa gitsin.
import
java.awt.FlowLayout;
import
java.awt.event.ActionEvent;
import
java.awt.event.ActionListener;
import
javax.swing.JButton;
import
javax.swing.JFrame;
public class Deneme
extends JFrame
implements ActionListener{
JButton buton1 = new JButton("sol");
JButton buton2 = new JButton("sag");
int x = 10;
int y = 10;
public Deneme( ){
super("Deneme");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
setSize(500, 100);
setLayout(new FlowLayout( ));
add(buton1);add(buton2);
buton1.addActionListener(this);
buton2.addActionListener(this);
}
public void actionPerformed(ActionEvent event){
String a = event.getActionCommand(
);
if(a.equals("sol")){
buton1.setLocation(x,y);
buton2.setLocation(x+50,y);
}else{
buton1.setLocation(x+350,
y);
buton2.setLocation(x+400,
y);
}
}
public static
void main(String[ ] args) {
Deneme deneme = new
Deneme( );
}
}
|
Burada x ve
y olarak koordinatları tutan değişkenler ile tuşlara basıldığında yerlerinin değişmesini
sağladık(setLocation(int a, int b) metodu ile)
GUI için çok güzel bir kaynak oldu benim için çok teşekkürler
YanıtlaSilEllerinize sağlık
ben teşekkür ederim
Sil