যখন মাউস স্থির থাকে তখন মাউস ইভেন্ট হ্যান্ডল করার জন্য আমরা MouseListener ইন্টারফেস বাস্তবায়ন করতে পারি, আর যখন মাউস গতিশীল থাকে তখন মাউস ইভেন্ট হ্যান্ডল করার জন্য আমরা MouseMotionListener ইন্টারফেস বাস্তবায়ন করতে পারি।
মাউস লিসেনার
একটি MouseEvent ফায়ার হয় যখন আমরা সোর্স অবজেক্টে বা সোর্স অবজেক্টে মাউস পয়েন্টার পজিশন করলে (এন্টার) এবং দূরে (এক্সিট) একটি মাউস বাটন (বাম বা ডান বাটন) প্রেস, রিলিজ বা ক্লিক (প্রেস ফলোড বাই রিলিজ) করি।
এক MouseListener ইন্টারফেস নিচের পাঁচটি অ্যাবস্ট্রাক্ট মেথড ঘোষণা করে
সিনট্যাক্স
public void mouseClicked(MouseEvent evt)
public void mousePressed(MouseEvent evt)
public void mouseReleased(MouseEvent evt)
public void mouseEntered(MouseEvent evt)
public void mouseExited(MouseEvent evt)
উদাহরণ
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MouseListenerTest extends JFrame implements MouseListener {
private JTextField tfMouseX, tfMouseY;
public MouseListenerTest() {
setLayout(new FlowLayout());
add(new Label("X-Click: "));
tfMouseX = new JTextField(10);
tfMouseX.setEditable(false);
add(tfMouseX);
add(new Label("Y-Click: "));
tfMouseY = new JTextField(10);
tfMouseY.setEditable(false);
add(tfMouseY);
addMouseListener(this);
setTitle("MouseListener Test");
setLocationRelativeTo(null);
setSize(350, 100);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new MouseListenerTest();
}
@Override
public void mouseClicked(MouseEvent evt) {
tfMouseX.setText(evt.getX() + "");
tfMouseY.setText(evt.getY() + "");
}
// কম্পাইল করার জন্য খালি বডি দিতে হবে।
@Override public void mousePressed(MouseEvent evt) { }
@Override public void mouseReleased(MouseEvent evt) { }
@Override public void mouseEntered(MouseEvent evt) { }
@Override public void mouseExited(MouseEvent evt) { }
}
আউটপুট

MouseMotionListener
একটি MouseEvent তখনও ফায়ার হয় যখন আমরা সোর্স অবজেক্টে মাউস পয়েন্টার মুভ এবং ড্র্যাগ করি। কিন্তু মাউস-মুভ এবং মাউস-ড্র্যাগ হ্যান্ডল করতে আমাদের MouseMotionListener ব্যবহার করতে হবে।
MouseMotionListener ইন্টারফেস নিচের দুটি অ্যাবস্ট্রাক্ট মেথড ঘোষণা করে
সিনট্যাক্স
public void mouseDragged(MouseEvent e)
public void mouseMoved(MouseEvent e)
উদাহরণ
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MouseMotionListenerTest extends JFrame implements MouseListener, MouseMotionListener {
private JTextField tfMouseClickX, tfMouseClickY;
private JTextField tfMousePositionX, tfMousePositionY;
public MouseMotionListenerTest() {
setLayout(new FlowLayout());
add(new Label("X-Click: "));
tfMouseClickX = new JTextField(10);
tfMouseClickX.setEditable(false);
add(tfMouseClickX);
add(new Label("Y-Click: "));
tfMouseClickY = new JTextField(10);
tfMouseClickY.setEditable(false);
add(tfMouseClickY);
add(new JLabel("X-Position: "));
tfMousePositionX = new JTextField(10);
tfMousePositionX.setEditable(false);
add(tfMousePositionX);
add(new JLabel("Y-Position: "));
tfMousePositionY = new JTextField(10);
tfMousePositionY.setEditable(false);
add(tfMousePositionY);
addMouseListener(this);
addMouseMotionListener(this);
setTitle("MouseMotionListener Test");
setSize(400, 120);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new MouseMotionListenerTest();
}
@Override
public void mouseClicked(MouseEvent evt) {
tfMouseClickX.setText(evt.getX() + "");
tfMouseClickY.setText(evt.getY() + "");
}
// কম্পাইলেশনের জন্য খালি বডি দিতে হবে
@Override public void mousePressed(MouseEvent evt) { }
@Override public void mouseReleased(MouseEvent evt) { }
@Override public void mouseEntered(MouseEvent evt) { }
@Override public void mouseExited(MouseEvent evt) { }
@Override
public void mouseMoved(MouseEvent evt) {
tfMousePositionX.setText(evt.getX() + "");
tfMousePositionY.setText(evt.getY() + "");
}
// কম্পাইল করার জন্য খালি বডি দিতে হবে
@Override public void mouseDragged(MouseEvent evt) { }
}
আউটপুট
