Aklımda Kalası Kelimeler

* давайте работать вместе
* Zarf ve Mazruf, Zerafet(xHoyratlık) ile aynı kökten(za-ra-fe) gelir
* Bedesten
* Suç subuta ermiştir - Suç sabit olmuştur
ActionListener etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
ActionListener etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

10 Aralık 2009 Perşembe

Swing ile programlama 4 - ActionListener


Ref:




import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.*;

public class Main {

public static void main(String[] args) {
Pencere pencere = new Pencere();
}
}
// JFrame den türetiyoruzki ana kabımız olsun diğer bileşenleri taşıyan
class Pencere extends JFrame {

JTextField txt;
JButton btn;
JLabel lbl;

public Pencere() {
// Taşıyıcı penceremiz
JFrame jfr = new JFrame("Taşıyıcı pencere");

// Bu pencerenin boyutları
jfr.setSize(400, 150);

// Kapatma çarpısına basıldığında uygulamadan çıkılsın
jfr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// Yerleşim için FlowLayout kullanıyoruz.
jfr.getContentPane().setLayout(new FlowLayout());

// Metin kutusunu ve Düğmemizi oluşturup en başada Etiket koyalım.
lbl = new JLabel("Lutfen isminizi girin.");
jfr.getContentPane().add(lbl);
txt = new JTextField(10);
jfr.getContentPane().add(txt);
btn = new JButton("Tamam");
jfr.getContentPane().add(btn);

btn.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent event) {
lbl.setText("Merhaba " + txt.getText());
btn.setVisible(false);
txt.setVisible(false);
}
});

btn.addMouseListener(new MouseListener() {

public void mouseClicked(MouseEvent e) {
JOptionPane.showMessageDialog(rootPane, "Tıklandı");
}

public void mousePressed(MouseEvent e) {
JOptionPane.showMessageDialog(rootPane, "Basıldı");
}

public void mouseReleased(MouseEvent e) {
JOptionPane.showMessageDialog(rootPane, "Bırakıldı");
}

public void mouseEntered(MouseEvent e) {
JOptionPane.showMessageDialog(rootPane, "Girildi");
}

public void mouseExited(MouseEvent e) {
JOptionPane.showMessageDialog(rootPane, "Çıkıldı");
}
});

txt.addKeyListener(new KeyListener() {

public void keyTyped(KeyEvent e) {
JOptionPane.showMessageDialog(rootPane, "Key Typed");
}

public void keyPressed(KeyEvent e) {
JOptionPane.showMessageDialog(rootPane, "Key Pressed");
}

public void keyReleased(KeyEvent e) {
JOptionPane.showMessageDialog(rootPane, "Key Released");
}
});
jfr.setVisible(true);
}
}

9 Aralık 2009 Çarşamba

Swing ile programlama 3 - ActionListener

GUI de öncelikle bir pencere(window) ye ihtiyacımız vardı. Ki bu window diğer bileşenlerimizi içersin. İşte javada barındırıcı penceremiz (container) JFrame den hazırlanmıştı. Şimdi de bu ana penceredeki bileşenlerin üreteceği olayları(event) nasıl yakalarız ve nasıl sonuç üretiriz onu yazalım.

Bunun içinde bir yerlerden ActionListener kullanmamız gerektiğini duymuş olalım.

Önce ActionListener nedir?
  • Sınıf mıdır? Arayüz müdür? Soyut mudur?
  • Ne yapar bizim için?



public interface ActionListener extends EventListener {

/**
* Invoked when an action occurs.
*/
public void actionPerformed(ActionEvent e);

}


Arayüzmüş. Demek ki bundan sınıflar türetebiliriz. Bu güzel. Peki nedir ActionListener?

Swing’de, görsel bileşenlerden (ui components) tetiklenen olaylara (action) dinleyici (listener) eklemek için bu komut kullanılır. Örneğin bir butona eklenen dinleyiciyle, butona tıklama olayından sonra butonun işini yapmasını sağlayabilirsiniz. Ufak bir de not, bir görsel bileşene birden fazla dinleyici eklenebilir, böylece bir olaydan tetiklenen sayısız iş yaptırılabilir. Referans:Kayıp Şehir


Bir bileşen üzerinde gerçekleşen hareket durumunu (action event) almak ve işlemek için oluşturacağımız objenin sınıfı bu arayüzü kullanır. Şimdi bizim bir nesneye ihtiyacımız var. Bu nesneyi frame üzerindeki bileşenin birine kaydedeceğiz. Yani, diyeceğizki nesnemize, bu bileşeni sen marke edeceksin. Nesnemiz, ilgili bileşenin karıştığı bir hareket durumunu (action event) yakalayacak ve ait olduğu sınıftan aldığı metodu tetikleyecektir.


package javaapplication;

import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.LayoutManager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class Main {

public static void main(String[] args) {
JFrame frame = new JFrame("Başlıkta görünsün");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(250, 450);
frame.setVisible(true);

int iYatayBosluk = 5;
int iDikeyBosluk = 15;
LayoutManager layoutMgr = new FlowLayout(FlowLayout.CENTER, iYatayBosluk, iDikeyBosluk);

// javax.swing paketindeki rootpanecontainer interface'inin bir metodu.
// Kısaca top-level container'ların contentpane'ine erişmek için kullanılır.
Container enUsttekiKap = frame.getContentPane();

enUsttekiKap.setLayout(layoutMgr);

// Frame üzerine koymak istediğimiz JLabel bileşenini oluşturup
JLabel lbl = new JLabel();
// Metnini değiştiriyoruz
lbl.setText("İsim: ");
// JLabel sınıfından oluşturduğumuz lbl nesnesini ekliyoruz.
enUsttekiKap.add(lbl);


// 5 kolonluk bir genişlikte metin kutusu oluştur.
final JTextField txt = new JTextField(5);
enUsttekiKap.add(txt);

txt.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {
txt.setBackground(Color.red);
}
});

// Bir de düğme ekleyelim.
final JButton btn = new JButton("GÖNDER");
enUsttekiKap.add(btn);

ActionListener alBtn = new ActionListener() {

public void actionPerformed(ActionEvent e) {
btn.setText("Düğmeye basıldı");
}
};

btn.addActionListener(alBtn);
}
}