Web Application এ Dynamic Chart তৈরি করা

JFreeChart এবং Web Application Integration - জেফ্রিচার্ট (JFreeChart) - Java Technologies

296

JFreeChart ব্যবহার করে Web ApplicationDynamic Chart তৈরি করা একটি শক্তিশালী উপায়, যা রিয়েল-টাইম ডেটা ভিজ্যুয়ালাইজেশন করতে সাহায্য করে। Java Web Application এ JFreeChart ব্যবহার করার মাধ্যমে আপনি ডায়নামিকভাবে চার্ট আপডেট করতে পারেন এবং এটি HTML, PNG, অথবা JPEG ফরম্যাটে রেন্ডার করতে পারেন। এই প্রক্রিয়া সাধারণত Servlet অথবা JSP ব্যবহার করে করা হয়।

এই অধ্যায়ে, আমরা দেখব কিভাবে JFreeChart দিয়ে একটি Dynamic Chart তৈরি করা যায় যা ওয়েব অ্যাপ্লিকেশন (যেমন: JSP/Servlet) এ রেন্ডার হবে এবং ডেটা রিয়েল-টাইমে আপডেট হবে।


Web Application এ Dynamic Chart তৈরি করার জন্য প্রয়োজনীয় উপাদান

  1. JFreeChart লাইব্রেরি: প্রথমে আপনার প্রোজেক্টে JFreeChart লাইব্রেরিটি অন্তর্ভুক্ত করতে হবে। যদি আপনি Maven ব্যবহার করেন, তাহলে নিম্নলিখিত ডিপেনডেন্সি যোগ করতে হবে:
<dependency>
    <groupId>org.jfree</groupId>
    <artifactId>jfreechart</artifactId>
    <version>1.5.3</version>
</dependency>
  1. Servlet / JSP: Dynamic Chart তৈরি করার জন্য আপনাকে Servlet অথবা JSP ব্যবহার করতে হবে। Servlet ব্যবহার করলে আপনি Java কোড দিয়ে ডেটা প্রস্তুত করে ইমেজ হিসেবে রেন্ডার করবেন।
  2. Chart Rendering: JFreeChart দিয়ে তৈরি করা চার্টটি PNG অথবা JPEG ফরম্যাটে রেন্ডার করা হয় এবং ওয়েব পেজে প্রদর্শিত হয়।

উদাহরণ: Web Application এ Dynamic Chart তৈরি করা

এখানে একটি Servlet উদাহরণ দেওয়া হলো, যেখানে JFreeChart ব্যবহার করে একটি Line Chart তৈরি করা হয়েছে এবং তা PNG ফরম্যাটে রেন্ডার করা হয়েছে। এটি ওয়েব পেজে ডায়নামিকভাবে দেখানো হবে।

1. Servlet তৈরি করা

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.category.DefaultCategoryDataset;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.*;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Random;

@WebServlet("/dynamicChart")
public class DynamicChartServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // ডেটাসেট তৈরি করা
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();

        // র‍্যান্ডম ডেটা যোগ করা
        Random rand = new Random();
        for (int i = 1; i <= 10; i++) {
            dataset.addValue(rand.nextInt(100), "Series1", "Time " + i);
        }

        // JFreeChart তৈরি করা
        JFreeChart chart = ChartFactory.createLineChart(
                "Dynamic Line Chart",   // Chart title
                "Time",                 // X-axis Label
                "Value",                // Y-axis Label
                dataset,                // Dataset
                org.jfree.chart.plot.PlotOrientation.VERTICAL, // Chart orientation
                true,                   // Include legend
                true,                   // Tooltips
                false                   // URLs
        );

        // রেন্ডারিং ফরম্যাট (PNG) নির্ধারণ করা
        response.setContentType("image/png");
        OutputStream out = response.getOutputStream();

        // PNG ফরম্যাটে চার্ট জেনারেট করা
        org.jfree.chart.ChartUtils.writeChartAsPNG(out, chart, 800, 600);
    }
}

2. Servlet কোডের ব্যাখ্যা

  1. Dataset তৈরি:
    • DefaultCategoryDataset ব্যবহার করে একটি সাধারণ ডেটাসেট তৈরি করা হয়েছে। এখানে র‍্যান্ডম ডেটা যোগ করা হচ্ছে যা প্রতি সেকেন্ডে আপডেট হবে।
  2. JFreeChart তৈরি করা:
    • ChartFactory.createLineChart() মেথড ব্যবহার করে একটি লাইন চার্ট তৈরি করা হয়েছে। এই মেথডের প্যারামিটারগুলির মধ্যে চার্টের টাইটেল, এক্স এবং ওয়াই অক্ষের লেবেল, এবং ডেটাসেট প্রদান করা হয়।
  3. Chart Rendering:
    • response.setContentType("image/png") এবং ChartUtils.writeChartAsPNG() মেথড ব্যবহার করে PNG ফরম্যাটে চার্টটি ওয়েব পেজে রেন্ডার করা হয়।
  4. OutputStream:
    • OutputStream out = response.getOutputStream(); দ্বারা সার্ভার ক্লায়েন্টে ইমেজ পাঠাতে সক্ষম হয়, যা ব্রাউজারে দেখানো হবে।

JSP তে Dynamic Chart রেন্ডারিং

JSP (JavaServer Pages) ব্যবহার করে ওয়েব পেজে JFreeChart রেন্ডার করতে, আপনি Servlet থেকে PNG ইমেজটি অ্যাক্সেস করতে পারেন। নিচে একটি উদাহরণ দেওয়া হলো যেখানে Servlet থেকে রেন্ডার করা PNG ইমেজ JSP তে দেখানো হবে।

1. JSP কোড

<%@ page contentType="image/png" %>
<img src="<%= request.getContextPath() + "/dynamicChart" %>" alt="Dynamic Chart" />

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

  • src অ্যাট্রিবিউটের মাধ্যমে, dynamicChart সার্ভলেটের URL এ পাঠানো হবে যা JFreeChart দ্বারা তৈরি PNG চিত্র রেন্ডার করবে।

Chart Refreshing in Web Applications

Dynamic Chart Refreshing ওয়েব অ্যাপ্লিকেশনে সাধারণত AJAX অথবা JavaScript ব্যবহার করে করা হয়। প্রতিটি নির্দিষ্ট সময় পর পর সার্ভারের কাছে ডেটা রিকোয়েস্ট পাঠানো হয় এবং নতুন ডেটা দিয়ে চার্টটি আপডেট হয়।

উদাহরণ: AJAX দিয়ে Dynamic Chart Refresh

<!DOCTYPE html>
<html>
<head>
    <title>Dynamic Chart Example</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script type="text/javascript">
        function refreshChart() {
            $('#chart').attr('src', '/dynamicChart?' + new Date().getTime());
        }

        $(document).ready(function() {
            setInterval(refreshChart, 1000); // প্রতি সেকেন্ডে চার্ট রিফ্রেশ হবে
        });
    </script>
</head>
<body>
    <h1>Dynamic Chart</h1>
    <img id="chart" src="/dynamicChart" alt="Dynamic Chart" />
</body>
</html>

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

  1. AJAX: setInterval() ব্যবহার করে প্রতি সেকেন্ডে refreshChart() ফাংশন কল করা হচ্ছে, যা src অ্যাট্রিবিউটকে নতুন time স্ট্যাম্প দিয়ে আপডেট করে।
  2. Chart Refresh: প্রতিবার ওয়েব পেজে নতুন চার্ট লোড হবে এবং সার্ভার থেকে আপডেট হওয়া চার্ট দেখা যাবে।

সারাংশ

JFreeChart ব্যবহার করে Web ApplicationsDynamic Chart তৈরি করা অত্যন্ত সহজ। Servlet বা JSP ব্যবহার করে আপনি রিয়েল-টাইম ডেটা প্রসেস করে ওয়েব পেজে চার্ট রেন্ডার করতে পারেন। JFreeChart এর মাধ্যমে আপনি Line Chart, Bar Chart, Pie Chart, Gantt Chart সহ অন্যান্য ভিজ্যুয়ালাইজেশন তৈরি করতে পারেন, এবং AJAX অথবা JavaScript ব্যবহার করে তা রিফ্রেশ করতে পারেন। এই টেকনিকগুলি ব্যবহার করে আপনি আপনার ওয়েব অ্যাপ্লিকেশনগুলিকে আরও ইন্টারঅ্যাকটিভ এবং ডায়নামিক করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...