JTextField yaratish va uni tuvalga joylashtirish JButton yoki har qanday Swing komponenti uchun zarur bo'lgan qadamlardir. Yuqoridagi dasturning farqi ActionListener bo'lgan yuqoridagi BL sinfini yaratishdadir . actionPerformed( ) argumenti ActionEvent tipidagi boʻlib , voqea va u qayerdan kelganligi haqidagi barcha maʼlumotlarni oʻz ichiga oladi. Bunday holda, men bosilgan tugmani tasvirlamoqchiman: getSource( ) hodisaning manbai bo'lgan ob'ektni ishlab chiqaradi, men buni JButton deb hisoblayman . getText( ) tugmachadagi matnni qaytaradi va tugma bosilganda kod aslida chaqirilganligini ko‘rsatish uchun JTextField- ga joylashtiriladi. init ( ) BL ob'ektini ikkala tugmaga ro'yxatdan o'tkazish uchun addActionListener( ) dan foydalanadi .
ActionListener- ni kodlash ko'pincha mos keladianonim ichki sinf, ayniqsa siz har bir guvoh sinf uchun bitta interfeysdan foydalanishga moyilligingiz uchun. Button2.java quyidagi kabi anonim ichki sinfdan foydalanish uchun o'zgartirilishi mumkin:
//: c13:Button2b.java
// Anonim ichki sinfdan foydalanish.
//
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import com.bruceeckel.swing.*;
ommaviy sinf Button2b JApplet- ni kengaytiradi {
JButton
b1 = yangi JButton ( "1-tugma" ),
b2 = yangi JButton( "2-tugma" );
JTextField txt = yangi JTextField(10);
ActionListener al = new ActionListener() {
public void actionPerformed(ActionEvent e){
String nomi =
((JButton)e.getSource()).getText();
txt.setText(nom);
}
};
public void init() {
b1.addActionListener(al);
b2.addActionListener(al);
Konteyner cp = getContentPane();
cp.setLayout( yangi FlowLayout());
cp.add(b1);
cp.add(b2);
cp.add(txt);
}
umumiy statik void main(String[] args) {
Console.run ( yangi Button2b(), 200, 75);
}
} ///:~
Ushbu kitobdagi misollar uchun (iloji bo'lsa) anonim ichki sinf yondashuvi afzal ko'riladi .