Ver Mensaje Individual
  #3 (permalink)  
Antiguo 05/07/2011, 01:29
elpre
 
Fecha de Ingreso: junio-2011
Mensajes: 151
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: Barra de desplazamiento en un Gantt

Vuelvo a hacer respot solo para decir que ya he conseguido poner la barra de desplazamiento, solo que no funciona, jeje, pongo lo que he echo:
Código:
package org.jfree.chart.demo;

import java.awt.BorderLayout;
import java.util.Calendar;
import java.util.Date;

import javax.swing.*;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.category.IntervalCategoryDataset;
import org.jfree.data.gantt.Task;
import org.jfree.data.gantt.TaskSeries;
import org.jfree.data.gantt.TaskSeriesCollection;
import org.jfree.data.time.SimpleTimePeriod;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;

public class GanttDemo extends ApplicationFrame {
	JPanel panel;
	JScrollPane sPanel;
	JScrollBar sVert;
	final IntervalCategoryDataset dataset;
	final JFreeChart chart;
	final ChartPanel chartPanel;

    public GanttDemo(final String title) {

        super(title);

        dataset = createDataset();
        chart = createChart(dataset);

        chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
        crearPanel();
        setContentPane(panel);
        //setContentPane(chartPanel);
    }
    
    public void crearPanel(){
    	panel=new JPanel(new BorderLayout());
    	
    	sPanel=new JScrollPane(chartPanel);
    	sVert=new JScrollBar(JScrollBar.VERTICAL);
    	
    	panel.add(sPanel,BorderLayout.CENTER);
    	panel.add(sVert, BorderLayout.EAST);
    }
    
    /*public void crearPanelScroll(){
    	sPanel=new JScrollPane(chartPanel);
    	sVert=new JScrollBar(JScrollBar.VERTICAL);

    	sPanel.add(sVert, BorderLayout.EAST);    	
    }*/

    public static IntervalCategoryDataset createDataset() {

        TaskSeries s1 = new TaskSeries("Scheduled");
        s1.add(new Task("Write Proposal",
               new SimpleTimePeriod(date(1, Calendar.APRIL, 2001),
                                    date(5, Calendar.APRIL, 2001))));
        s1.add(new Task("Obtain Approval",
               new SimpleTimePeriod(date(9, Calendar.APRIL, 2001),
                                    date(9, Calendar.APRIL, 2001))));
        s1.add(new Task("Requirements Analysis",
               new SimpleTimePeriod(date(10, Calendar.APRIL, 2001),
                                    date(5, Calendar.MAY, 2001))));
        s1.add(new Task("Design Phase",
               new SimpleTimePeriod(date(6, Calendar.MAY, 2001),
                                    date(30, Calendar.MAY, 2001))));
        s1.add(new Task("Design Signoff",
               new SimpleTimePeriod(date(2, Calendar.JUNE, 2001),
                                    date(2, Calendar.JUNE, 2001))));
        s1.add(new Task("Alpha Implementation",
               new SimpleTimePeriod(date(3, Calendar.JUNE, 2001),
                                    date(31, Calendar.JULY, 2001))));
        s1.add(new Task("Design Review",
               new SimpleTimePeriod(date(1, Calendar.AUGUST, 2001),
                                    date(8, Calendar.AUGUST, 2001))));
        s1.add(new Task("Revised Design Signoff",
               new SimpleTimePeriod(date(10, Calendar.AUGUST, 2001),
                                    date(10, Calendar.AUGUST, 2001))));
        s1.add(new Task("Beta Implementation",
               new SimpleTimePeriod(date(12, Calendar.AUGUST, 2001),
                                    date(12, Calendar.SEPTEMBER, 2001))));
        s1.add(new Task("Testing",
               new SimpleTimePeriod(date(13, Calendar.SEPTEMBER, 2001),
                                    date(31, Calendar.OCTOBER, 2001))));
        s1.add(new Task("Final Implementation",
               new SimpleTimePeriod(date(1, Calendar.NOVEMBER, 2001),
                                    date(15, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Signoff",
               new SimpleTimePeriod(date(28, Calendar.NOVEMBER, 2001),
                                    date(30, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("ignoff",
                new SimpleTimePeriod(date(28, Calendar.NOVEMBER, 2001),
                                     date(30, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Sgnoff",
                new SimpleTimePeriod(date(28, Calendar.NOVEMBER, 2001),
                                     date(30, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Sinoff",
                new SimpleTimePeriod(date(28, Calendar.NOVEMBER, 2001),
                                     date(30, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Sigoff",
                new SimpleTimePeriod(date(28, Calendar.NOVEMBER, 2001),
                                     date(30, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Signff",
                new SimpleTimePeriod(date(28, Calendar.NOVEMBER, 2001),
                                     date(30, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Signof",
                new SimpleTimePeriod(date(28, Calendar.NOVEMBER, 2001),
                                     date(30, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Signof",
                new SimpleTimePeriod(date(28, Calendar.NOVEMBER, 2001),
                                     date(30, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("gnoff",
                new SimpleTimePeriod(date(28, Calendar.NOVEMBER, 2001),
                                     date(30, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Snoff",
                new SimpleTimePeriod(date(28, Calendar.NOVEMBER, 2001),
                                     date(30, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Sioff",
                new SimpleTimePeriod(date(28, Calendar.NOVEMBER, 2001),
                                     date(30, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Sigff",
                new SimpleTimePeriod(date(28, Calendar.NOVEMBER, 2001),
                                     date(30, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Signf",
                new SimpleTimePeriod(date(28, Calendar.NOVEMBER, 2001),
                                     date(30, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Signo",
                new SimpleTimePeriod(date(28, Calendar.NOVEMBER, 2001),
                                     date(30, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("noff",
                new SimpleTimePeriod(date(28, Calendar.NOVEMBER, 2001),
                                     date(30, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("inal Implementation",
                new SimpleTimePeriod(date(1, Calendar.NOVEMBER, 2001),
                                     date(15, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Fnal Implementation",
                new SimpleTimePeriod(date(1, Calendar.NOVEMBER, 2001),
                                     date(15, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Fial Implementation",
                new SimpleTimePeriod(date(1, Calendar.NOVEMBER, 2001),
                                     date(15, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Finl Implementation",
                new SimpleTimePeriod(date(1, Calendar.NOVEMBER, 2001),
                                     date(15, Calendar.NOVEMBER, 2001))));
        
        final TaskSeriesCollection collection = new TaskSeriesCollection();
        collection.add(s1);

        return collection;
    }

    private static Date date(final int day, final int month, final int year) {

        final Calendar calendar = Calendar.getInstance();
        calendar.set(year, month, day);
        final Date result = calendar.getTime();
        return result;

    }

    private JFreeChart createChart(final IntervalCategoryDataset dataset) {
        final JFreeChart chart = ChartFactory.createGanttChart(
            "Gantt Chart Demo",  // chart title
            "Task",              // domain axis label
            "Date",              // range axis label
            dataset,             // data
            true,                // include legend
            true,                // tooltips
            false                // urls
        );    
        //chart.getCategoryPlot().getDomainAxis().setMaximumCategoryLabelWidthRatio(10.0f);
        return chart;    
    }

    public static void main(final String[] args) {

        final GanttDemo demo = new GanttDemo("Gantt Chart Demo 1");
        demo.pack();
        RefineryUtilities.centerFrameOnScreen(demo);
        demo.setVisible(true);
        demo.setResizable(true);
    }
He añadido muchas tareas para que se vea que cuantas más hay las tareas se van pegando entre ellas en vez, por eso quería poner el scroll. No sé por que no funciona, alguien??

PD: Siento hacer repost pero creo que para este caso tenía que hacerlo