Gantt Chart হলো একটি টাইম-ভিত্তিক চার্ট যা সাধারণত প্রকল্প ব্যবস্থাপনা এবং শিডিউলিং এর জন্য ব্যবহৃত হয়। এটি বিভিন্ন কাজ বা কার্যক্রমের সময়সীমা (duration), নির্দিষ্ট সময়সূচী এবং সম্পর্ক (dependencies) প্রদর্শন করতে সাহায্য করে। JFreeChart লাইব্রেরি গ্যান্ট চার্ট তৈরি করতে JFreeChart এবং IntervalCategoryDataset ব্যবহার করে।
JFreeChart দিয়ে Gantt Chart তৈরি করার উদাহরণ
নিচে একটি Gantt Chart তৈরি করার জন্য কোড উদাহরণ দেয়া হয়েছে:
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.data.gantt.Task;
import org.jfree.data.gantt.TaskSeries;
import org.jfree.data.gantt.TaskSeriesCollection;
import javax.swing.*;
import java.awt.*;
public class GanttChartExample {
public static void main(String[] args) {
// Task Series তৈরি করা
TaskSeries series = new TaskSeries("Project Tasks");
// Task তৈরি করা
Task task1 = new Task("Task 1", new java.util.Date(2024, 1, 1), new java.util.Date(2024, 2, 1));
Task task2 = new Task("Task 2", new java.util.Date(2024, 2, 1), new java.util.Date(2024, 3, 1));
Task task3 = new Task("Task 3", new java.util.Date(2024, 3, 1), new java.util.Date(2024, 4, 1));
// Task Series এ Task যোগ করা
series.add(task1);
series.add(task2);
series.add(task3);
// TaskSeriesCollection তৈরি করা
TaskSeriesCollection dataset = new TaskSeriesCollection();
dataset.add(series);
// Gantt Chart তৈরি করা
JFreeChart chart = ChartFactory.createGanttChart(
"Project Gantt Chart", // Chart Title
"Task", // X-axis Label
"Date", // Y-axis Label
dataset, // Dataset
false, // Legend visibility
true, // Tooltips visibility
false // URLs visibility
);
// ChartPanel তৈরি করা
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));
// JFrame এ Chart প্রদর্শন করা
JFrame frame = new JFrame("JFreeChart Gantt Chart Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(chartPanel, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
}
কোড ব্যাখ্যা
- Task Series:
এখানেTaskSeriesতৈরি করা হয়েছে, যা প্রকল্পের কাজের (tasks) তালিকা সংরক্ষণ করে। আমরা এই সিরিজে তিনটি Task যোগ করেছি। প্রতিটি টাস্কে কাজের নাম এবং সময়কাল (start date এবং end date) নির্ধারণ করা হয়েছে। - Task:
Taskহলো প্রতিটি নির্দিষ্ট কাজ বা কার্যক্রম, যার একটি নাম এবং একটি শুরুর ও শেষের তারিখ থাকে। উদাহরণস্বরূপ,"Task 1"নামক কাজটি ১ জানুয়ারি থেকে ১ ফেব্রুয়ারি পর্যন্ত চলবে। - TaskSeriesCollection:
একাধিকTaskSeriesযোগ করতে TaskSeriesCollection ব্যবহার করা হয়। এখানে আমরা একটি সিরিজ যোগ করেছি। - Gantt Chart:
ChartFactory.createGanttChart()মেথডটি একটি গ্যান্ট চার্ট তৈরি করে, যেখানে প্রথম প্যারামিটার হলো চার্টের শিরোনাম, দ্বিতীয় প্যারামিটার হলো X-axis label, তৃতীয় প্যারামিটার হলো Y-axis label, এবং চতুর্থ প্যারামিটার হলো আমাদের TaskSeriesCollection ডেটাসেট। - ChartPanel:
এই কম্পোনেন্টটি গ্যান্ট চার্টের জন্য একটি Swing প্যানেল তৈরি করে, যা GUI অ্যাপ্লিকেশন বা ডেস্কটপ অ্যাপ্লিকেশনে চার্ট দেখানোর জন্য ব্যবহৃত হয়।
Gantt Chart কাস্টমাইজেশন
Gantt Chart এর কিছু কাস্টমাইজেশন অপশন রয়েছে, যেমন:
Task Color পরিবর্তন: আপনি প্রতিটি টাস্কের রঙ পরিবর্তন করতে পারেন:
task1.setPaint(Color.RED); task2.setPaint(Color.GREEN); task3.setPaint(Color.BLUE);Task Dependency: Gantt Chart এ কাজগুলোর মধ্যে সম্পর্ক (dependencies) নির্ধারণ করা যায়, যেমন একটি কাজ শেষ হওয়ার পর অন্যটি শুরু হবে:
task2.addDependency(task1); // Task 2 depends on Task 1 task3.addDependency(task2); // Task 3 depends on Task 2Date Format কাস্টমাইজেশন: আপনি গ্যান্ট চার্টের তারিখের ফরম্যাট কাস্টমাইজ করতে পারেন:
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");Gridlines: Gantt Chart এর gridlines কাস্টমাইজ করা যায়:
CategoryPlot plot = (CategoryPlot) chart.getPlot(); plot.setDomainGridlinesVisible(true); plot.setRangeGridlinesVisible(true);
উপসংহার
JFreeChart ব্যবহার করে Gantt Chart তৈরি করা অত্যন্ত সহজ এবং কার্যকরী। এটি প্রকল্প ব্যবস্থাপনা এবং কার্যক্রম শিডিউলিং জন্য একটি গুরুত্বপূর্ণ টুল, যা সময়সীমা এবং কার্যক্রমের সময়সূচী প্রদর্শনে সহায়ক। আপনি সহজেই টাস্ক যোগ করতে পারেন, তাদের নির্দিষ্ট সময়কাল নির্ধারণ করতে পারেন, এবং টাস্কের মধ্যে সম্পর্ক (dependencies) দেখাতে পারেন। JFreeChart এ Gantt Chart কাস্টমাইজ করার সুযোগও রয়েছে, যা আপনাকে আরও উন্নত এবং সুনির্দিষ্ট চার্ট তৈরি করতে সহায়তা করে।
Read more