jfreechart中gantt显示位置不对
如图2001.4.1-2001.4.5的任务task1的进度显示的位置明显不对,不知道是我哪里没有设置正确,求高手指点。
如下是这个demo的全部源码。
--------------------编程问答-------------------- 我自己顶起来 --------------------编程问答-------------------- --------------------编程问答-------------------- 看看API能不能设置位置吧,帮顶 --------------------编程问答-------------------- 坚持顶起来!!! --------------------编程问答-------------------- --------------------编程问答-------------------- 这帖子沉了,唉! --------------------编程问答-------------------- plot.setOrientation(PlotOrientation.VERTICAL);
package org.jfree.chart.demo;
import java.awt.Color;
import java.awt.Font;
import java.util.Calendar;
import java.util.Date;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.CategoryItemRenderer;
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.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
public class GanttDemo2 extends ApplicationFrame {
private static final long serialVersionUID = 8379244532540783449L;
/**
* @param title
*/
public GanttDemo2(final String title) {
super(title);
final IntervalCategoryDataset dataset = createSampleDataset();
// create the chart...
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
true // urls
);
CategoryPlot plot = (CategoryPlot) chart.getPlot();
plot.setOrientation(PlotOrientation.VERTICAL);
Font xfont = new Font("宋体",Font.PLAIN,20) ;
Font yfont = new Font("宋体",Font.PLAIN,20) ;
// X 轴
CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setLabelFont(xfont);
domainAxis.setTickLabelFont(xfont);
//domainAxis.setTickLabelPaint(Color.BLUE) ;
domainAxis.setCategoryLabelPositions(CategoryLabelPositions.DOWN_90);
// Y 轴
ValueAxis rangeAxis = plot.getRangeAxis();
rangeAxis.setLabelFont(yfont);
rangeAxis.setTickLabelFont(yfont);
// rangeAxis.setInverted(true);
final CategoryItemRenderer renderer = plot.getRenderer();
renderer.setSeriesPaint(0, Color.blue);
final ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(1000, 600));
setContentPane(chartPanel);
}
private IntervalCategoryDataset createSampleDataset() {
final TaskSeries s1 = new TaskSeries("taskSeries1");
final Task t1 = new Task(
"task1", date(1, 3, 2001), date(5, 3, 2001)
);
t1.setPercentComplete(0.5);
s1.add(t1);
final Task t2 = new Task(
"task2", date(9, 3, 2001), date(11, 3, 2001)
);
t2.setPercentComplete(1.00);
s1.add(t2);
final Task t3 = new Task(
"task3",
date(10, 3, 2001), date(5, 5, 2001)
);
final Task st31 = new Task(
"task3T1",
date(10, 3, 2001), date(25, 3, 2001)
);
st31.setPercentComplete(1.0);
final Task st32 = new Task(
"task3T2",
date(1, 5, 2001), date(5, 5, 2001)
);
st32.setPercentComplete(1.0);
t3.addSubtask(st31);
t3.addSubtask(st32);
s1.add(t3);
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);
Date result = calendar.getTime();
return result;
}
public static void main(final String[] args) {
final GanttDemo2 demo = new GanttDemo2("gannt 例子");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
}
改成
plot.setOrientation(PlotOrientation.HORIZONTAL);
补充:Java , Java EE