MouseListener এবং MouseMotionListener যোগ করা

Interactive Charts এবং Tooltips - জেফ্রিচার্ট (JFreeChart) - Big Data and Analytics

374

JFreeChart-এ MouseListener এবং MouseMotionListener যোগ করার মাধ্যমে আপনি চার্টের সাথে ইন্টারঅ্যাকটিভ ফিচার যোগ করতে পারেন। এর মাধ্যমে আপনি মাউসের ক্লিক, হোভারিং, বা ড্র্যাগ ইভেন্টের প্রতি প্রতিক্রিয়া জানাতে পারবেন, যা ব্যবহারকারীকে চার্টের বিভিন্ন অংশে ইন্টারঅ্যাক্ট করতে সহায়ক হয়। উদাহরণস্বরূপ, MouseListener ব্যবহার করে আপনি চার্টের কোনও নির্দিষ্ট ডেটা পয়েন্টের উপর ক্লিক করার মাধ্যমে তা হাইলাইট করতে পারেন বা MouseMotionListener ব্যবহার করে আপনি মাউসের গতিবিধি অনুসরণ করে কোনো তথ্য প্রদর্শন করতে পারেন।

MouseListener এবং MouseMotionListener এর ধারণা

  • MouseListener: মাউসের ক্লিক বা মাউস চাপানোর সময় ঘটে এমন ইভেন্টগুলো ধরার জন্য ব্যবহৃত হয়। যেমন mousePressed, mouseReleased, mouseClicked ইত্যাদি।
  • MouseMotionListener: মাউসের গতি এবং অবস্থান (যেমন মাউস মুভমেন্ট এবং ড্র্যাগ) ট্র্যাক করতে ব্যবহৃত হয়। যেমন mouseDragged এবং mouseMoved

JFreeChart-এ MouseListener এবং MouseMotionListener যোগ করার উদাহরণ

এখানে একটি উদাহরণ দেওয়া হয়েছে যেখানে MouseListener এবং MouseMotionListener ব্যবহার করে JFreeChart-এ ইন্টারঅ্যাকটিভ ফিচার যোগ করা হয়েছে।

১. MouseListener এবং MouseMotionListener ব্যবহার করে ক্লিক এবং মুভমেন্ট ট্র্যাক করা

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.chart.event.MouseEvent;
import org.jfree.chart.event.MouseListener;
import org.jfree.chart.event.MouseMotionListener;

import javax.swing.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;

public class ChartMouseListenerExample {
    public static void main(String[] args) {
        // ডেটাসেট তৈরি করা
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        dataset.addValue(10, "Category 1", "January");
        dataset.addValue(15, "Category 1", "February");
        dataset.addValue(20, "Category 1", "March");

        // বার চার্ট তৈরি করা
        JFreeChart chart = ChartFactory.createBarChart(
                "Monthly Sales",   // Chart Title
                "Month",           // X-Axis Label
                "Sales (Units)",   // Y-Axis Label
                dataset,           // Dataset
                PlotOrientation.VERTICAL, // Bar orientation
                true,              // Show legend
                true,              // Show tooltips
                false              // Show URLs
        );

        // ChartPanel তৈরি
        ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));

        // MouseListener যোগ করা
        chartPanel.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                System.out.println("Mouse clicked at: X=" + e.getX() + ", Y=" + e.getY());
            }
        });

        // MouseMotionListener যোগ করা
        chartPanel.addMouseMotionListener(new MouseAdapter() {
            @Override
            public void mouseMoved(MouseEvent e) {
                System.out.println("Mouse moved at: X=" + e.getX() + ", Y=" + e.getY());
            }

            @Override
            public void mouseDragged(MouseEvent e) {
                System.out.println("Mouse dragged at: X=" + e.getX() + ", Y=" + e.getY());
            }
        });

        // JFrame এ চার্ট দেখানো
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setContentPane(chartPanel);
        frame.pack();
        frame.setVisible(true);
    }
}

কোড ব্যাখ্যা:

  1. Dataset তৈরি করা: এখানে DefaultCategoryDataset ব্যবহার করে কিছু ডেটা যোগ করা হয়েছে, যা Bar Chart প্রদর্শন করবে।
  2. MouseListener: MouseAdapter ক্লাসের সাহায্যে mouseClicked ইভেন্টে মাউসের অবস্থান (X এবং Y) প্রিন্ট করা হয়েছে। আপনি যদি মাউসের উপর ক্লিক করেন, তখন চার্টের কন্টেন্টের উপর মাউসের অবস্থান প্রদর্শিত হবে।
  3. MouseMotionListener: mouseMoved এবং mouseDragged মেথডগুলি মাউসের গতি এবং ড্র্যাগিং ট্র্যাক করতে ব্যবহৃত হয়েছে। mouseMoved-এ, মাউসের স্থান পরিবর্তন অনুযায়ী কনসোলে মেসেজ প্রিন্ট হচ্ছে, আর mouseDragged-এ মাউস ড্র্যাগ করার সময় এটি ট্র্যাক করে।
  4. ChartPanel: ChartPanel ক্লাসটি JFreeChart এর চার্ট প্রদর্শন করার জন্য ব্যবহৃত হয়। এখানে এটি JFrame তে চার্ট প্রদর্শন করার জন্য সংযুক্ত করা হয়েছে।

MouseListener এবং MouseMotionListener কাস্টমাইজেশন

  1. MouseClicked: মাউস ক্লিকের মাধ্যমে এক বা একাধিক ডেটা পয়েন্ট নির্বাচন বা হাইলাইট করতে পারবেন।

    chartPanel.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent e) {
            // নির্বাচিত ডেটা পয়েন্ট দেখানো
            System.out.println("Data point clicked at: X=" + e.getX() + ", Y=" + e.getY());
        }
    });
    
  2. MouseMoved: মাউসের গতি অনুসরণ করে কোন ডেটা পয়েন্টের উপর তথ্য প্রদর্শন করতে পারবেন।

    chartPanel.addMouseMotionListener(new MouseAdapter() {
        @Override
        public void mouseMoved(MouseEvent e) {
            // মাউস মুভমেন্টের উপর ভিত্তি করে ডেটা পয়েন্টের টুলটিপ প্রদর্শন করা
            System.out.println("Mouse moved at: X=" + e.getX() + ", Y=" + e.getY());
        }
    });
    
  3. MouseDragged: মাউসের ড্র্যাগিংয়ের মাধ্যমে কিছু বিশেষ কার্যকলাপ (যেমন ড্র্যাগ করে চার্টে কোনো আংশিক পরিবর্তন) করা যায়।

    chartPanel.addMouseMotionListener(new MouseAdapter() {
        @Override
        public void mouseDragged(MouseEvent e) {
            // মাউস ড্র্যাগ করার সময় কিছু পরিবর্তন করুন
            System.out.println("Mouse dragged at: X=" + e.getX() + ", Y=" + e.getY());
        }
    });
    

সারসংক্ষেপ

MouseListener এবং MouseMotionListener ব্যবহার করে JFreeChart-এ ইন্টারঅ্যাকটিভ ফিচার যোগ করা সম্ভব। এর মাধ্যমে আপনি মাউসের ক্লিক, মুভমেন্ট, এবং ড্র্যাগ ইভেন্ট ট্র্যাক করতে পারবেন এবং তা থেকে বিভিন্ন কার্যকলাপ বা তথ্য প্রদর্শন করতে পারবেন। এই ধরনের কাস্টমাইজেশন আপনার গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI)-কে আরও ডাইনামিক এবং ব্যবহারকারী বান্ধব করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...