একজন ইভেন্ট লিসনার ইন্টারফেস পদ্ধতিগুলিকে সংজ্ঞায়িত করে যা একটি ইভেন্ট হ্যান্ডলার দ্বারা একটি নির্দিষ্ট ধরণের ইভেন্টের জন্য প্রয়োগ করা আবশ্যক যেখানে একটি ইভেন্ট অ্যাডাপ্টার class একটি EventListener এর একটি ডিফল্ট বাস্তবায়ন প্রদান করে ইন্টারফেস।
ইভেন্ট লিসেনার
- ইভেন্ট শ্রোতারা ঘটনাগুলি পরিচালনা করার জন্য প্রতিটি উপাদানের মেরুদণ্ড।
- একটি নির্দিষ্ট ইভেন্ট লিসনার এর প্রতিটি পদ্ধতি উদাহরণ হিসেবে একটি একক প্যারামিটার থাকবে যা EventObject -এর সাবক্লাস ক্লাস।
- একজন ইভেন্ট লিসনার ইন্টারফেস প্রসারিত করা প্রয়োজন এবং এটি j এ সংজ্ঞায়িত করা হবে ava.util প্যাকেজ।
- কয়েকজন ইভেন্ট লিসেনার ইন্টারফেস হল ActionListener , কী লিসেনার , মাউস লিসেনার , ফোকাস লিসনার , আইটেম লিসেনার এবং ইত্যাদি।
উদাহরণ
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class KeyListenerTest implements KeyListener, ActionListener { JFrame frame; JTextField tf; JLabel lbl; JButton btn; public KeyListenerTest() { frame = new JFrame(); lbl = new JLabel(); tf = new JTextField(15); tf.addKeyListener(this); btn = new JButton("Clear"); btn.addActionListener(this); JPanel panel = new JPanel(); panel.add(tf); panel.add(btn); frame.setLayout(new BorderLayout()); frame.add(lbl, BorderLayout.NORTH); frame.add(panel, BorderLayout.SOUTH); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocationRelativeTo(null); frame.setSize(300, 200); frame.setVisible(true); } @Override public void keyTyped(KeyEvent ke) { lbl.setText("You have typed "+ ke.getKeyChar()); } @Override public void keyPressed(KeyEvent ke) { lbl.setText("You have pressed "+ ke.getKeyChar()); } @Override public void keyReleased(KeyEvent ke) { lbl.setText("You have released "+ ke.getKeyChar()); } @Override public void actionPerformed(ActionEvent ae) { tf.setText(""); } public static void main(String args[]) { new KeyListenerTest(); } }
আউটপুট
ইভেন্ট অ্যাডাপ্টার
- বিমূর্ত ক্লাসগুলিকে ইভেন্ট বলা যেতে পারে অ্যাডাপ্টার বিভিন্ন ইভেন্ট পাওয়ার জন্য।
- একটি ইভেন্ট অ্যাডাপ্টার ক্লাস একটি ইভেন্টলিস্টেনার -এ সমস্ত পদ্ধতির একটি ডিফল্ট বাস্তবায়ন দেয় ইন্টারফেস।
- কয়েকটি ইভেন্ট অ্যাডাপ্টার ক্লাস হল ফোকাস অ্যাডাপ্টার , কী অ্যাডাপ্টার , মাউস অ্যাডাপ্টার , উইন্ডো অ্যাডাপ্টার এবং ইত্যাদি।
উদাহরণ
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class KeyAdapterTest { private JFrame frame; private JLabel headLabel; private JLabel msgLabel; private JPanel controlPanel; public KeyAdapterTest() { initializeUI(); } private void initializeUI() { frame = new JFrame("KeyAdapter class"); frame.setSize(350, 275); frame.setLayout(new GridLayout(3, 1)); headLabel = new JLabel("", JLabel.CENTER); msgLabel = new JLabel("", JLabel.CENTER); msgLabel.setSize(300, 100); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent windowEvent) { System.exit(0); } }); controlPanel = new JPanel(); controlPanel.setLayout(new FlowLayout()); frame.add(headLabel); frame.add(controlPanel); frame.add(msgLabel); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocationRelativeTo(null); frame.setVisible(true); } private void showMouseApapter() { headLabel.setText("KeyAdapter Test"); final JTextField textField = new JTextField(10); JButton displayButton = new JButton("Display"); displayButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { msgLabel.setText("You entered : " + textField.getText()); } }); textField.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER) { msgLabel.setText("You entered : " + textField.getText()); } } }); controlPanel.add(textField); controlPanel.add(displayButton); frame.setVisible(true); } public static void main(String[] args) { KeyAdapterTest test = new KeyAdapterTest(); test.showMouseApapter(); } }
আউটপুট