JFreeChart-এ ChartMouseListener ব্যবহার করে আপনি mouse events (যেমন ক্লিক, হোভার) ট্র্যাক করতে পারেন এবং সেই অনুযায়ী Event Handling করতে পারেন। এটি বিশেষভাবে দরকারী যখন আপনি চার্টের উপর ব্যবহারকারীর ইন্টারঅ্যাকশন ট্র্যাক করতে চান, যেমন ব্যবহারকারী একটি নির্দিষ্ট পয়েন্টে ক্লিক করলে সেই ডেটার বিস্তারিত প্রদর্শন করা বা টুলটিপ দেখানো।
ChartMouseListener সাধারণত ChartPanel-এ MouseEvent যুক্ত করার জন্য ব্যবহৃত হয়। এটি আপনাকে চার্টের উপর বিভিন্ন ধরনের মাউস ইভেন্ট (যেমন ক্লিক, মুভ, হোভার) সনাক্ত করার সুযোগ দেয়।
ChartMouseListener এর উদাহরণ
উদাহরণ: ChartMouseListener দিয়ে মাউস ক্লিক ইভেন্ট ট্র্যাক করা
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.event.ChartMouseEvent;
import org.jfree.chart.event.ChartMouseListener;
import org.jfree.data.category.DefaultCategoryDataset;
import javax.swing.*;
public class ChartMouseListenerExample {
public static void main(String[] args) {
// ডেটাসেট তৈরি করা
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(10, "Series1", "Category1");
dataset.addValue(15, "Series1", "Category2");
dataset.addValue(20, "Series1", "Category3");
// বার চার্ট তৈরি করা
JFreeChart chart = ChartFactory.createBarChart(
"Sales by Category", // চার্টের শিরোনাম
"Category", // এক্স-অক্ষের নাম
"Sales", // ওয়াই-অক্ষের নাম
dataset // ডেটাসেট
);
// ChartPanel তৈরি করা
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));
// ChartMouseListener যোগ করা
chartPanel.addChartMouseListener(new ChartMouseListener() {
@Override
public void chartMouseClicked(ChartMouseEvent event) {
// ক্লিক করা পয়েন্টের তথ্য পাওয়া
String category = event.getEntity().getDescription();
System.out.println("Chart clicked at: " + category);
}
@Override
public void chartMouseMoved(ChartMouseEvent event) {
// মাউস মুভ করলে পয়েন্টের তথ্য পাওয়া
String category = event.getEntity().getDescription();
System.out.println("Mouse moved over: " + category);
}
});
// JFrame এ চার্ট প্রদর্শন করা
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(chartPanel);
frame.pack();
frame.setVisible(true);
}
}
কোড ব্যাখ্যা:
- ChartMouseListener:
addChartMouseListenerমেথড ব্যবহার করে ChartPanel এ ChartMouseListener যোগ করা হয়েছে।- chartMouseClicked: ব্যবহারকারী যখন চার্টে ক্লিক করবে, তখন এটি সেই পয়েন্টের তথ্য প্রদর্শন করবে।
- chartMouseMoved: ব্যবহারকারী যখন মাউস চার্টের উপর দিয়ে মুভ করবে, তখন এটি সেই পয়েন্টের তথ্য প্রদর্শন করবে।
- ChartMouseEvent: এটি মাউস ইভেন্টের তথ্য ধারণ করে, যেমন ক্লিক করা পয়েন্ট, ইভেন্টের অবস্থান ইত্যাদি।
ChartMouseListener এর মাধ্যমে অন্যান্য ইভেন্ট হ্যান্ডলিং
ChartMouseListener ব্যবহার করে আপনি বিভিন্ন মাউস ইভেন্ট হ্যান্ডল করতে পারেন, যেমন:
- MouseClicked: ব্যবহারকারী যখন চার্টে ক্লিক করে।
- MouseMoved: মাউস যখন চার্টের উপর মুভ করে।
- MousePressed: ব্যবহারকারী যখন চার্টে মাউস প্রেস করে।
- MouseReleased: ব্যবহারকারী যখন মাউস ছেড়ে দেয়।
এছাড়া, ChartMouseEvent থেকে আপনি অন্যান্য তথ্য যেমন মাউসের অবস্থান এবং ইভেন্টের আঙ্গিক (entity) পেতে পারেন।
উদাহরণ: MousePressed ইভেন্ট হ্যান্ডলিং
chartPanel.addChartMouseListener(new ChartMouseListener() {
@Override
public void chartMouseClicked(ChartMouseEvent event) {
// কোড এখানে
}
@Override
public void chartMouseMoved(ChartMouseEvent event) {
// কোড এখানে
}
@Override
public void chartMousePressed(ChartMouseEvent event) {
// মাউস প্রেস করলে, প্রিন্ট করা
System.out.println("Mouse pressed at: " + event.getEntity());
}
@Override
public void chartMouseReleased(ChartMouseEvent event) {
// মাউস ছেড়ে দিলে
System.out.println("Mouse released at: " + event.getEntity());
}
});
ChartMouseListener এর মাধ্যমে Tooltips এবং Interactivity যোগ করা
ChartMouseListener ব্যবহার করে আপনি Tooltip এবং অন্যান্য ইন্টারঅ্যাকটিভ ফিচারও যুক্ত করতে পারেন। যেমন, ব্যবহারকারী যখন চার্টে ক্লিক করে, তখন আপনি নির্দিষ্ট ডেটার বিশদ তথ্য প্রদর্শন করতে পারেন।
উদাহরণ: Tooltips তৈরি করা
chartPanel.addChartMouseListener(new ChartMouseListener() {
@Override
public void chartMouseClicked(ChartMouseEvent event) {
// চার্টে ক্লিক করলে, টুলটিপ দেখানো
String tooltip = "You clicked on: " + event.getEntity().getDescription();
System.out.println(tooltip);
}
@Override
public void chartMouseMoved(ChartMouseEvent event) {
// মাউস মুভ করলে, টুলটিপ দেখানো
String tooltip = "Mouse moved over: " + event.getEntity().getDescription();
System.out.println(tooltip);
}
});
এখানে, আপনি chartMouseClicked এবং chartMouseMoved ইভেন্টের মধ্যে টুলটিপ তৈরি এবং প্রদর্শন করতে পারেন।
সারসংক্ষেপ
ChartMouseListener একটি শক্তিশালী ইন্টারঅ্যাকশন টুল যা JFreeChart ব্যবহার করে চার্টের উপর মাউস ইভেন্ট ট্র্যাক করতে সহায়ক। এটি বিশেষভাবে mouse clicks, mouse movements, mouse presses, এবং mouse releases হ্যান্ডল করার জন্য ব্যবহৃত হয়। এই ইভেন্ট হ্যান্ডলিং টুল ব্যবহার করে আপনি চার্টে tooltip, interactive features, বা event-based updates যোগ করতে পারেন। ChartMouseListener চার্টের ব্যবহারকারীদের সাথে আরও ইন্টারঅ্যাকটিভ এবং রিচ ভিজুয়ালাইজেশন অভিজ্ঞতা তৈরি করতে সহায়ক।
Read more