Rabu, 13 Juni 2012

Gantt Chart With Java


import java.util.*;
import javax.swing.*;
import org.jfree.chart.*;
import org.jfree.data.category.IntervalCategoryDataset;
import org.jfree.data.gantt.*;
import org.jfree.data.general.Dataset;
import org.jfree.data.time.SimpleTimePeriod;
import org.jfree.ui.RefineryUtilities;

public class GanttChart extends JFrame implements mychart
{
    Dataset dataset;
    JFreeChart chart;
    String title;
    //pembuatan method setData
   private  Date setDate(int tanggal, int bulan, int tahun)
    {
        Calendar calendar = Calendar.getInstance();
        calendar.set(tahun, bulan-1, tanggal);
        Date date = calendar.getTime();
        return date;

    }

    //langkah pertama
    public  void createDataset()
    {
         //Menggunakan Class TaskSeries
        TaskSeries taskSeriesProyek = new TaskSeries("Proyek Pengadaan Generator Listrik");
       
        taskSeriesProyek.add(
                new Task("Membuat spesifikasi dan kriteria", new SimpleTimePeriod(setDate(1, 3, 2011), setDate(5, 3, 2011)))
                );
        taskSeriesProyek.add(
                new Task("Pabrikasi generator", new SimpleTimePeriod(setDate(6, 3, 2011), setDate(20, 3, 2011)))
                );
        taskSeriesProyek.add(
                new Task("Desain Pondasi", new SimpleTimePeriod(setDate(6, 3, 2011), setDate(13, 3, 2011)))
                );
       taskSeriesProyek.add(
                new Task("Merekrut Operator dan mekanik", new SimpleTimePeriod(setDate(6, 3, 2011), setDate(20, 3, 2011)))
                );
       taskSeriesProyek.add(
                new Task("Membeli Material", new SimpleTimePeriod(setDate(14, 3, 2011), setDate(21, 3, 2011)))
                );
       taskSeriesProyek.add(
                new Task("Inspeki dan uji coba", new SimpleTimePeriod(setDate(21, 3, 2011), setDate(25, 3, 2011)))
                );
      taskSeriesProyek.add(
                new Task("Melatih operator dan mekanik", new SimpleTimePeriod(setDate(22, 3, 2011), setDate(29, 3, 2011)))
                );
      taskSeriesProyek.add(
                new Task("Membuat Pondasi", new SimpleTimePeriod(setDate(22, 3, 2011), setDate(30, 3, 2011)))
                );
      taskSeriesProyek.add(
                new Task("Transport dari pabrik ke lokasi proyek", new SimpleTimePeriod(setDate(25, 3, 2011), setDate(26, 3, 2011)))
                );
       taskSeriesProyek.add(
                new Task("Memasang dan start up", new SimpleTimePeriod(setDate(31, 3, 2011), setDate(7, 4, 2011)))
                );
      
        //memasukan objek class TaskSeries kedalam TaskSeriesCollection
        TaskSeriesCollection taskseriescollection = new TaskSeriesCollection();
        taskseriescollection.add(taskSeriesProyek);
       
        this.dataset=taskseriescollection;
    }
     

   //langkah kedua
    public  void createChart()
    {
        this.chart = ChartFactory.createGanttChart(
                this.title,  //title
                "Jenis Kegiatan", // y label
                "Tanggal", // x label
                (IntervalCategoryDataset) this.dataset, //dataset
                true, //legend
                true, //tooltips
                false); //url
       
    }

    //langkah ketiga
    public  void  createPanel()
    {

       //membuat panel sebagai container chart
        JPanel panel=new  ChartPanel(this.chart);
        //menambahkan JPanel ke JFrame
        this.setContentPane(panel);
    }

    //langkah keempat
    public GanttChart(String s)
    {
         //constructor JFrame
       super(s);
       this.title=s;
       // inisialiasi dataset, char, dan Jpanel
       this.createDataset();
       this.createChart();
       this.createPanel();
       //pack JFrame
       this.pack();
       // aplikasi bersifat exit dan close
       this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       // lokasi tampilan aplikasi ditengah layar
       RefineryUtilities.centerFrameOnScreen(this);
    }
    public static void main(String args[])
    {
        GanttChart ganttdemo1 = new GanttChart("Proyek Pengadaan Generator Listrik");
        ganttdemo1.show();
       
    }
  
}

2 komentar: