Gantt Chart হল একটি জনপ্রিয় ভিজ্যুয়াল টুল যা প্রকল্প ব্যবস্থাপনা, সময়সূচী, এবং পরিকল্পনার জন্য ব্যবহৃত হয়। এটি বিভিন্ন কাজ এবং তাদের সময়সীমা (timeline) প্রদর্শন করতে সাহায্য করে। JFreeChart-এ Gantt Chart তৈরি করতে, সাধারণত TaskSeriesDataset এবং Task ব্যবহার করা হয়।
এই গাইডে আমরা দেখব কিভাবে JFreeChart ব্যবহার করে Gantt Chart তৈরি করা যায়, এবং কিভাবে টাস্ক এবং টাইমলাইন কনফিগার করা যায়।
Gantt Chart এবং TaskSeriesDataset
Gantt Chart তৈরির জন্য JFreeChart এর TaskSeriesDataset ব্যবহার করা হয়। TaskSeriesDataset একটি বিশেষ ধরনের ডেটাসেট যা প্রকল্পের কাজ বা টাস্ক এবং তাদের শুরুর এবং শেষ সময় নির্ধারণ করে। এখানে, প্রতিটি Task একটি নির্দিষ্ট কাজ (যেমন: Task A, Task B) এবং তার জন্য নির্ধারিত সময় (start time এবং end time) থাকে।
TaskSeriesDataset-এ একটি বা একাধিক TaskSeries থাকতে পারে, এবং প্রতিটি TaskSeries বিভিন্ন টাস্কগুলোর তালিকা ধারণ করে।
Gantt Chart তৈরি করা
1. JFreeChart ইনস্টলেশন
প্রথমে, JFreeChart লাইব্রেরি আপনার প্রকল্পে যুক্ত করতে হবে। যদি আপনি Maven ব্যবহার করেন, তবে নিচের ডিপেনডেন্সি ব্যবহার করতে পারেন:
<dependency>
<groupId>org.jfree</groupId>
<artifactId>jfreechart</artifactId>
<version>1.5.3</version>
</dependency>
2. TaskSeriesDataset ব্যবহার করে Gantt Chart তৈরি করা
এখানে একটি সাধারণ উদাহরণ দেওয়া হলো যেখানে TaskSeriesDataset ব্যবহার করে একটি Gantt Chart তৈরি করা হয়েছে।
উদাহরণ:
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.gantt.Task;
import org.jfree.data.gantt.TaskSeries;
import org.jfree.data.gantt.TaskSeriesCollection;
import javax.swing.*;
import java.util.Date;
public class GanttChartExample {
public static void main(String[] args) {
// ১. TaskSeries তৈরি করা
TaskSeries series = new TaskSeries("Project Tasks");
// ২. টাস্ক তৈরি করা
Task task1 = new Task("Task 1", new Date(2024, 1, 1), new Date(2024, 1, 5));
Task task2 = new Task("Task 2", new Date(2024, 1, 6), new Date(2024, 1, 10));
Task task3 = new Task("Task 3", new Date(2024, 1, 11), new Date(2024, 1, 15));
// ৩. টাস্কগুলি TaskSeries এ যোগ করা
series.add(task1);
series.add(task2);
series.add(task3);
// ৪. TaskSeriesCollection তৈরি করা
TaskSeriesCollection dataset = new TaskSeriesCollection();
dataset.add(series);
// ৫. Gantt Chart তৈরি করা
JFreeChart chart = ChartFactory.createGanttChart(
"Project Schedule", // Chart title
"Task", // X-axis label
"Timeline", // Y-axis label
dataset, // Dataset
true, // Legend
true, // Tooltips
false // URLs
);
// ৬. ChartPanel তৈরি করা
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));
// ৭. JFrame তৈরি করে চার্টটি দেখানো
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(chartPanel);
frame.pack();
frame.setVisible(true);
}
}
কোড ব্যাখ্যা:
- TaskSeries:
- এখানে আমরা একটি TaskSeries তৈরি করেছি, যা "Project Tasks" নামে পরিচিত। এটি বিভিন্ন টাস্ক ধারণ করবে, যেমন "Task 1", "Task 2", এবং "Task 3"।
- Task:
- প্রতিটি Task একটি নির্দিষ্ট কাজ এবং তার জন্য শুরু এবং শেষ সময় ধারণ করে। উদাহরণস্বরূপ, "Task 1" ১ জানুয়ারি থেকে ৫ জানুয়ারি পর্যন্ত চলবে।
- TaskSeriesCollection:
- একাধিক TaskSeries যোগ করার জন্য আমরা TaskSeriesCollection ব্যবহার করেছি। এখানে একটি TaskSeries এর মধ্যে সব টাস্ক যুক্ত করা হয়েছে।
- ChartFactory.createGanttChart():
- Gantt Chart তৈরি করার জন্য ChartFactory.createGanttChart() মেথড ব্যবহার করা হয়েছে, যেখানে আমরা টাইটেল, অক্ষের লেবেল এবং ডেটাসেট নির্দিষ্ট করেছি।
- ChartPanel:
- ChartPanel ব্যবহার করা হয়েছে যাতে আমরা চার্টটি একটি GUI উইন্ডোতে প্রদর্শন করতে পারি।
- JFrame:
- JFrame ব্যবহার করে চার্টটি একটি নতুন উইন্ডোতে দেখানো হয়েছে।
Gantt Chart কাস্টমাইজেশন
JFreeChart এর মাধ্যমে Gantt Chart কাস্টমাইজ করা যায়। এখানে কিছু সাধারণ কাস্টমাইজেশন অপশন দেখানো হলো:
Task এর রঙ পরিবর্তন: আপনি প্রতিটি টাস্কের রঙ পরিবর্তন করতে পারেন:
task1.setTaskPaint(Color.RED); task2.setTaskPaint(Color.GREEN); task3.setTaskPaint(Color.BLUE);টাস্কের স্টাইল পরিবর্তন: আপনি টাস্কের স্টাইল যেমন পূর্ণ রঙ, স্তর, বা প্রান্ত কাস্টমাইজ করতে পারেন।
task1.setTaskPaint(new Color(255, 0, 0, 100)); // Semi-transparent redChart Title কাস্টমাইজেশন: Gantt Chart এর টাইটেল পরিবর্তন করা যেতে পারে:
chart.setTitle("Project Timeline");Axes কাস্টমাইজেশন: আপনি এক্স অক্ষ বা ওয়াই অক্ষের লেবেল এবং রেঞ্জ কাস্টমাইজ করতে পারেন।
chart.getCategoryPlot().getDomainAxis().setRange(new Date(2024, 1, 1), new Date(2024, 1, 20));
সারাংশ
JFreeChart এর মাধ্যমে আপনি সহজেই Gantt Chart তৈরি করতে পারেন। TaskSeriesDataset ব্যবহার করে বিভিন্ন কাজ এবং তাদের টাইমলাইন প্রদর্শন করা সম্ভব হয়। Gantt Chart প্রকল্প ব্যবস্থাপনা, সময়সীমা পরিকল্পনা এবং ডেভেলপমেন্টে কার্যকরী হয়। JFreeChart এর শক্তিশালী কাস্টমাইজেশন অপশন দিয়ে আপনি চার্টটির টাস্ক, রঙ, সময়সীমা এবং অন্যান্য উপাদান কাস্টমাইজ করে আরও কার্যকরী করতে পারেন।
Read more