Java 更改JFreeChart甘特图上的范围轴-非工作时间段时间线

Java 更改JFreeChart甘特图上的范围轴-非工作时间段时间线,java,swing,rendering,jfreechart,gantt-chart,Java,Swing,Rendering,Jfreechart,Gantt Chart,我希望我能以正确的方式传达我的信息,并告诉你我希望实现的目标 我在Swing应用程序中使用JFreeChart甘特图来显示任务的调度。能够准备正确的数据集并在面板上获得图表。看起来像这样 总体功能上没有问题,但是我们的任务安排是轮班完成的,所以它不会占用一天24小时的时间。 例如,在我们的案例中,工作时间仅为0800小时-1600小时。我的数据集也符合这一点。如图所示,步骤7是一项持续时间为2小时的任务,从1月22日的1500小时开始,到第二天的0900时结束(两天都是1小时,因为工作时间都是

我希望我能以正确的方式传达我的信息,并告诉你我希望实现的目标

我在Swing应用程序中使用JFreeChart甘特图来显示任务的调度。能够准备正确的数据集并在面板上获得图表。看起来像这样

总体功能上没有问题,但是我们的任务安排是轮班完成的,所以它不会占用一天24小时的时间。 例如,在我们的案例中,工作时间仅为0800小时-1600小时。我的数据集也符合这一点。如图所示,步骤7是一项持续时间为2小时的任务,从1月22日的1500小时开始,到第二天的0900时结束(两天都是1小时,因为工作时间都是1600小时,只有第二天是0800小时)

但从图表上看,第7步是事件中最长的任务之一,因为图表也考虑了非工作时间。有没有办法改变范围轴/日期轴考虑时间段仅在自定义小时或修剪下来的非工作时间(1600 -800小时在我的情况下)?p> 不幸的是,我没有JFreeChart开发指南来进一步研究

下面是我生成数据集和创建图表的代码片段

                 for (int i = 0; i < tempList.size(); i++) {

                     GanttChartPojo tempGCPojo = new GanttChartPojo();
                     tempGCPojo = tempList.get(i);
                     s1.add(new Task(tempGCPojo.getTaskStepDesc(), tempGCPojo.getEST(), tempGCPojo.getEFT()));
                     s2.add(new Task(tempGCPojo.getTaskStepDesc(), tempGCPojo.getLST(), tempGCPojo.getLFT()));


             }
         }
     }

     // Add the task series to a TaskSeriesCollection
     final TaskSeriesCollection collection = new TaskSeriesCollection();
     collection.add(s1);
     collection.add(s2);
更新:
在广泛查阅互联网后,我发现我可以使用SegmentedTimeLineAPI消除这种非工作时间。以前使用过它的任何人,请帮助我从绘图中删除非工作时间?

查看XYTaskDatasetDemo1中的示例,您应该能够做到这一点。它可能是工作获得的副本,因为这将使您能够访问演示源代码


不幸的是,我无法访问《开发人员指南》,但它是否在内部使用分段时间线?谢谢
 // create the chart...
    final JFreeChart chart = ChartFactory.createGanttChart(
        "Scheduling of Task Steps : Maintenance Event "+eventKey,      // chart title
        "Task",                      // x axis label
        "Time",                      // y axis label
        dataset,                  // data
        true,                     // include legend
        true,                     // tooltips
        false                     // urls
    );


    chart.setBackgroundPaint(Color.pink);


    return chart;

}