Bonjour à tous je dois réaliser une application qui affiche un diagramme de Gantt avec ressources (RCPSP).
L’application consiste à afficher sur un graphique les différentes taches (avec les dates en abscisse et les ressources en ordonnées ).
comme représenté ici :
http://https://sdz-upload.s3.amazonaws.com/prod/upload/schedule1.png
A l’aide de mes recherches et en utilisant la librairie JfreeChart de Java j’ai pu réaliser le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
public class Gantt extends ApplicationFrame {
 
    public Gantt(final String title) {
 
        super(title);
 
        final IntervalCategoryDataset dataset = createDataset();
        final JFreeChart chart = createChart(dataset);
 
        final ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
        setContentPane(chartPanel);
    }
    public static IntervalCategoryDataset createDataset() {
 
        final TaskSeries s1 = new TaskSeries("Developemment");
 
        s1.add(new Task("Module B",
               new SimpleTimePeriod(date(5, Calendar.APRIL, 2001),
                                    date(15, Calendar.APRIL, 2001))));
 
        final TaskSeries s2 = new TaskSeries("Formation");
        s2.add(new Task("Module A",
               new SimpleTimePeriod(date(10, Calendar.APRIL, 2001),
                                    date(18, Calendar.APRIL, 2001))));
        s2.add(new Task("Module E",
                new SimpleTimePeriod(date(12, Calendar.APRIL, 2001),
                                     date(20, Calendar.APRIL, 2001))));
        s2.add(new Task("Module F",
                new SimpleTimePeriod(date(17, Calendar.APRIL, 2001),
                                     date(26, Calendar.APRIL, 2001))));
 
        final TaskSeriesCollection collection = new TaskSeriesCollection();
        collection.add(s1);
        collection.add(s2);
 
        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",  // Titre
            "Tache",              
            "Date",             
            dataset,             // données
            true,                // légende
            false,                
            false          
        );    
        return chart;    
    }
 
    public static void main(final String[] args) {
 
        final Gantt demo = new Gantt("Gantt");
        demo.pack();
        RefineryUtilities.centerFrameOnScreen(demo);
        demo.setVisible(true);
    }
}
Il m’affiche un diagramme de Gantt classique. Je voudrais maintenant pouvoir manipuler la taille de mes taches (en ordonné).
Quelqu’un aurait une idée pouvant m’aider ?
Merci d’avance.