Java - barra desplazamiento en gantt

   
Vista:
Imágen de perfil de elpre

barra desplazamiento en gantt

Publicado por elpre aritzlp@hotmail.com (1 intervención) el 05/07/2011 09:04:00
Hola, estoy haciendo un gantt en java con JFreeChart, el gantt lo he sacado de aquí:
http://www.java2s.com/Code/Java/Chart/JFreeChartGanttDemo1.htm
He echo las modificaaciones que tenía que hacer y todo perfecto, pero resulta que si pones muchas tareas, que es precisamente lo que me pasa pues en vez de que se agrande y se amolde para que las tareas se vean bien las tareas se van pegando unas a otras y no se vé prácticamente nada. Para eso había pensado en poner una barra de desplazamiento, pero no sé si es posible. Adjunto el código de la dirección que he puesto arriba sólo que he puesto muchas más tareas para que se vea lo de que se pegan las tareas. Pongo también lo que he intentado hacer para que salga el Scroll. A ver si alguno me puede echar una mano.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
package org.jfree.chart.demo;
 
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();
    	crearPanelScroll();
    	panel.add(sPanel);
    }
 
    public void crearPanelScroll(){
    	sPanel=new JScrollPane(chartPanel);
    	sVert=new JScrollBar(JScrollBar.VERTICAL);
 
    	sPanel.add(sVert);
    }
 
    public static IntervalCategoryDataset createDataset() {
 
        final 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))));
        s1.add(new Task("Fina Implementation",
                new SimpleTimePeriod(date(1, Calendar.NOVEMBER, 2001),
                                     date(15, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("FinalImplementation",
                new SimpleTimePeriod(date(1, Calendar.NOVEMBER, 2001),
                                     date(15, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Final mplementation",
                new SimpleTimePeriod(date(1, Calendar.NOVEMBER, 2001),
                                     date(15, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Final Iplementation",
                new SimpleTimePeriod(date(1, Calendar.NOVEMBER, 2001),
                                     date(15, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Final Imlementation",
                new SimpleTimePeriod(date(1, Calendar.NOVEMBER, 2001),
                                     date(15, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Final Impementation",
                new SimpleTimePeriod(date(1, Calendar.NOVEMBER, 2001),
                                     date(15, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Final Implmentation",
                new SimpleTimePeriod(date(1, Calendar.NOVEMBER, 2001),
                                     date(15, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Final Impleentation",
                new SimpleTimePeriod(date(1, Calendar.NOVEMBER, 2001),
                                     date(15, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Final Implemntation",
                new SimpleTimePeriod(date(1, Calendar.NOVEMBER, 2001),
                                     date(15, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Final Implemetation",
                new SimpleTimePeriod(date(1, Calendar.NOVEMBER, 2001),
                                     date(15, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Final Implemenation",
                new SimpleTimePeriod(date(1, Calendar.NOVEMBER, 2001),
                                     date(15, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Final Implementtion",
                new SimpleTimePeriod(date(1, Calendar.NOVEMBER, 2001),
                                     date(15, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Final Implementaion",
                new SimpleTimePeriod(date(1, Calendar.NOVEMBER, 2001),
                                     date(15, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Final Implementaton",
                new SimpleTimePeriod(date(1, Calendar.NOVEMBER, 2001),
                                     date(15, Calendar.NOVEMBER, 2001))));
        s1.add(new Task("Final Implementatin",
                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().setMaxCategoryLabelWidthRatio(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);
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder