In folgendem Code erstelle ich ein Gantt Diagramm. Soweit so gut. Nun ist es es aber von unten nach oben orientiert und nicht von links nach rechts.
Wie kann ich die Achsen vertauschen?
Wie kann ich die Achsen vertauschen?
Java:
public class GanttChartTest extends ApplicationFrame {
/**
* Creates a new demo.
*
* @param title the frame title.
*/
public GanttChartTest(final String title) {
super(title);
String categoryAxisLabel = "CategoryAxisLabel";
String dateAxisLabel = "DateAxisLabel";
final IntervalCategoryDataset dataset = createDataset();
CategoryAxis categoryAxis = new CategoryAxis(categoryAxisLabel);
DateAxis dateAxis = new DateAxis(dateAxisLabel);
final CategoryItemRenderer renderer = (CategoryItemRenderer) new GanttRenderer();
renderer.setSeriesPaint(0, Color.blue);
final CategoryPlot plot = new CategoryPlot(dataset, categoryAxis, dateAxis, renderer);
plot.setRenderer(renderer);
plot.setDataset(dataset);
// create the chart...
final JFreeChart chart = new JFreeChart("", new Font("Tahoma", Font.BOLD, 16), plot, true);
// add the chart to a panel...
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("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))));
final TaskSeries s2 = new TaskSeries("Actual");
s2.add(new Task("Write Proposal",
new SimpleTimePeriod(date(1, Calendar.APRIL, 2001),
date(5, Calendar.APRIL, 2001))));
s2.add(new Task("Obtain Approval",
new SimpleTimePeriod(date(9, Calendar.APRIL, 2001),
date(9, Calendar.APRIL, 2001))));
s2.add(new Task("Requirements Analysis",
new SimpleTimePeriod(date(10, Calendar.APRIL, 2001),
date(15, Calendar.MAY, 2001))));
s2.add(new Task("Design Phase",
new SimpleTimePeriod(date(15, Calendar.MAY, 2001),
date(17, Calendar.JUNE, 2001))));
s2.add(new Task("Design Signoff",
new SimpleTimePeriod(date(30, Calendar.JUNE, 2001),
date(30, Calendar.JUNE, 2001))));
s2.add(new Task("Alpha Implementation",
new SimpleTimePeriod(date(1, Calendar.JULY, 2001),
date(12, Calendar.SEPTEMBER, 2001))));
s2.add(new Task("Design Review",
new SimpleTimePeriod(date(12, Calendar.SEPTEMBER, 2001),
date(22, Calendar.SEPTEMBER, 2001))));
s2.add(new Task("Revised Design Signoff",
new SimpleTimePeriod(date(25, Calendar.SEPTEMBER, 2001),
date(27, Calendar.SEPTEMBER, 2001))));
s2.add(new Task("Beta Implementation",
new SimpleTimePeriod(date(27, Calendar.SEPTEMBER, 2001),
date(30, Calendar.OCTOBER, 2001))));
s2.add(new Task("Testing",
new SimpleTimePeriod(date(31, Calendar.OCTOBER, 2001),
date(17, Calendar.NOVEMBER, 2001))));
s2.add(new Task("Final Implementation",
new SimpleTimePeriod(date(18, Calendar.NOVEMBER, 2001),
date(5, Calendar.DECEMBER, 2001))));
s2.add(new Task("Signoff",
new SimpleTimePeriod(date(10, Calendar.DECEMBER, 2001),
date(11, Calendar.DECEMBER, 2001))));
final TaskSeriesCollection collection = new TaskSeriesCollection();
collection.add(s1);
collection.add(s2);
return collection;
}
/**
* Utility method for creating <code>Date</code> objects.
*
* @param day the date.
* @param month the month.
* @param year the year.
*
* @return a date.
*/
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;
}
/**
* Starting point for the demonstration application.
*
* @param args ignored.
*/
public static void main(final String[] args) {
final GanttChartTest demo = new GanttChartTest("Gantt Chart Demo 2");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
}