JFreeChart-এ Custom Event Handling ব্যবহার করার মাধ্যমে আপনি চার্টের বিভিন্ন অংশের সাথে ইন্টারঅ্যাক্ট করতে পারেন। এর মাধ্যমে ব্যবহারকারীরা বিভিন্ন ইভেন্ট (যেমন মাউস ক্লিক, মাউস হোভার, কীবোর্ড ইনপুট ইত্যাদি) ব্যবহার করে চার্টের ডেটা বা বৈশিষ্ট্যগুলির সাথে কাজ করতে পারে। JFreeChart-এ Custom Event Handling মূলত MouseListener, MouseMotionListener, এবং KeyListener ব্যবহার করে করা হয়।
JFreeChart-এ Custom Event Handling সেটআপ
JFreeChart-এ কাস্টম ইভেন্ট হ্যান্ডলিং করার জন্য আপনি MouseListener বা MouseAdapter ব্যবহার করতে পারেন, যা ব্যবহারকারীর মাউস ক্লিক বা মুভমেন্ট ট্র্যাক করে। এছাড়া, MouseMotionListener এবং KeyListener ব্যবহার করে আরও কাস্টম ইভেন্ট হ্যান্ডলিং করতে পারেন।
MouseListener এর সাহায্যে Custom Event Handling
MouseListener উদাহরণ
এই উদাহরণে, MouseListener ব্যবহার করে মাউস ক্লিক ইভেন্টটি হ্যান্ডল করা হয়েছে। যখন ব্যবহারকারী চার্টের একটি অংশে ক্লিক করবেন, তখন চার্টের তথ্য (যেমন X এবং Y পজিশন) দেখানো হবে।
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.data.category.DefaultCategoryDataset;
import javax.swing.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class MouseEventHandlingExample {
public static void main(String[] args) {
// ডেটাসেট তৈরি করা
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(1.0, "Category 1", "Jan");
dataset.addValue(4.0, "Category 1", "Feb");
dataset.addValue(3.0, "Category 1", "Mar");
// চার্ট তৈরি করা
JFreeChart chart = ChartFactory.createBarChart(
"Sales for the First Quarter", // চার্টের শিরোনাম
"Month", // এক্স-অক্ষের নাম
"Sales (in units)", // ওয়াই-অক্ষের নাম
dataset, // ডেটাসেট
PlotOrientation.VERTICAL, // প্লট অরিয়েন্টেশন
true, // লেজেন্ড প্রদর্শন
true, // টুলটিপস
false // URL সমর্থন
);
// MouseListener দিয়ে ক্লিক ইভেন্ট হ্যান্ডল করা
chart.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
// ক্লিক করার সময় মাউস পজিশন সনাক্ত করা
int x = e.getX();
int y = e.getY();
JOptionPane.showMessageDialog(null, "Mouse clicked at X: " + x + " Y: " + y);
}
});
// চার্ট প্যানেল তৈরি করা
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));
// JFrame এ চার্ট দেখানো
JFrame frame = new JFrame();
frame.setContentPane(chartPanel);
frame.pack();
frame.setVisible(true);
}
}
ব্যাখ্যা:
- MouseAdapter ব্যবহার করা হয়েছে যাতে mouseClicked মেথডে মাউস ক্লিক ইভেন্ট হ্যান্ডল করা যায়।
- ক্লিক করার পর মাউসের X এবং Y পজিশন পাওয়া যায় এবং JOptionPane ব্যবহার করে একটি পপ-আপ উইন্ডোতে এটি দেখানো হয়।
MouseMotionListener এর সাহায্যে Custom Event Handling
MouseMotionListener ব্যবহার করলে আপনি মাউস মুভমেন্ট ট্র্যাক করতে পারেন, অর্থাৎ যখন মাউস চার্টের উপর চলে যায় তখন কিছু কর্ম সম্পাদন করা যায়। উদাহরণস্বরূপ, আপনি মাউসের অবস্থান ট্র্যাক করে চার্টের কোন অংশের উপর মাউস চলে এসেছে তা জানতে পারেন।
MouseMotionListener উদাহরণ
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.category.DefaultCategoryDataset;
import javax.swing.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
public class MouseMotionEventExample {
public static void main(String[] args) {
// ডেটাসেট তৈরি করা
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(1.0, "Category 1", "Jan");
dataset.addValue(4.0, "Category 1", "Feb");
dataset.addValue(3.0, "Category 1", "Mar");
// চার্ট তৈরি করা
JFreeChart chart = ChartFactory.createBarChart(
"Monthly Sales", // চার্টের শিরোনাম
"Month", // এক্স-অক্ষের নাম
"Sales (in units)", // ওয়াই-অক্ষের নাম
dataset, // ডেটাসেট
PlotOrientation.VERTICAL, // প্লট অরিয়েন্টেশন
true, // লেজেন্ড প্রদর্শন
true, // টুলটিপস
false // URL সমর্থন
);
// MouseMotionListener দিয়ে মাউস মুভমেন্ট ট্র্যাক করা
chart.addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseMoved(MouseEvent e) {
// মাউসের পজিশন সনাক্ত করা
int x = e.getX();
int y = e.getY();
System.out.println("Mouse moved to X: " + x + " Y: " + y);
}
});
// চার্ট প্যানেল তৈরি করা
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));
// JFrame এ চার্ট দেখানো
JFrame frame = new JFrame();
frame.setContentPane(chartPanel);
frame.pack();
frame.setVisible(true);
}
}
ব্যাখ্যা:
- MouseMotionAdapter ব্যবহার করা হয়েছে যেখানে mouseMoved মেথডে মাউসের মুভমেন্ট ট্র্যাক করা হচ্ছে।
- যখন মাউস চার্টের উপর চলে যায়, তখন মাউসের X এবং Y পজিশন কনসোলে প্রদর্শিত হয়।
KeyListener এর সাহায্যে Custom Event Handling
KeyListener ব্যবহার করে আপনি কীবোর্ডের ইনপুট ট্র্যাক করতে পারেন। এটি বিশেষত তখন উপকারী হয় যখন আপনি ডেটা ভিজুয়ালাইজেশনের সাথে কীবোর্ড কমান্ডের মাধ্যমে ইন্টারঅ্যাক্ট করতে চান।
KeyListener উদাহরণ
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.category.DefaultCategoryDataset;
import javax.swing.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
public class KeyEventHandlingExample {
public static void main(String[] args) {
// ডেটাসেট তৈরি করা
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(1.0, "Category 1", "Jan");
dataset.addValue(4.0, "Category 1", "Feb");
dataset.addValue(3.0, "Category 1", "Mar");
// চার্ট তৈরি করা
JFreeChart chart = ChartFactory.createBarChart(
"Monthly Sales", // চার্টের শিরোনাম
"Month", // এক্স-অক্ষের নাম
"Sales (in units)", // ওয়াই-অক্ষের নাম
dataset, // ডেটাসেট
PlotOrientation.VERTICAL, // প্লট অরিয়েন্টেশন
true, // লেজেন্ড প্রদর্শন
true, // টুলটিপস
false // URL সমর্থন
);
// KeyListener দিয়ে কীবোর্ড ইনপুট হ্যান্ডল করা
chart.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
if (keyCode == KeyEvent.VK_UP) {
System.out.println("Up arrow key pressed!");
} else if (keyCode == KeyEvent.VK_DOWN) {
System.out.println("Down arrow key pressed!");
}
}
});
// চার্ট প্যানেল তৈরি করা
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));
// JFrame এ চার্ট দেখানো
JFrame frame = new JFrame();
frame.setContentPane(chartPanel);
frame.pack();
frame.setVisible(true);
}
}
ব্যাখ্যা:
- KeyListener ব্যবহার করা হয়েছে যেখানে keyPressed মেথডে কীবোর্ডের ইনপুট ট্র্যাক করা হচ্ছে। এখানে, Up Arrow এবং Down Arrow কীগুলোর জন্য ইভেন্ট হ্যান্ডলিং করা হয়েছে।
সারসংক্ষেপ
JFreeChart-এ Custom Event Handling ব্যবহার করে আপনি চার্টের সাথে ইন্টারঅ্যাক্টিভ কার্যকলাপ পরিচালনা করতে পারেন, যেমন MouseListener, MouseMotionListener, এবং KeyListener এর মাধ্যমে মাউস ক্লিক, মাউস মুভমেন্ট, এবং কীবোর্ড ইনপুট ট্র্যাক করা। এগুলি ব্যবহারকারীকে চার্টের ডেটার সাথে আরও কার্যকরভাবে ইন্টারঅ্যাক্ট করতে সাহায্য করে, যেমন ডেটা রূপান্তর, ফিল্টারিং, বা এনিমেশন তৈরি করা।
Read more