TimePeriodValuesCollection を表示する JFreeChart 時系列グラフがあります。データセットには 2 つの間隔が含まれています。データは正しく表示され、ビューを (Ctrl キーを押しながらドラッグして) パンすることができます。問題は、ズームインし、ズームされたビューでビューを右にパンすると、最初の間隔が表示されなくなった後、2 番目の間隔が突然消えることです。
間隔が 1 つしかない場合、またはズームインしなくても、すべて問題ありません。
何かご意見は?
SSCCE:
public class DisappearingTest {
public static final SimpleDateFormat oracleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
buildFrame();
}
});
}
private static void buildFrame() {
JFrame f = new JFrame("Test");
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JPanel chartPanel = null;
try {
chartPanel = createChartPanel();
} catch (ParseException e) {
e.printStackTrace();
}
f.add(chartPanel);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
static JPanel createChartPanel() throws ParseException {
TimePeriodValues timePeriodValues = new TimePeriodValues("Test");
Date startDate1 = oracleDateFormat.parse("2011-01-01");
Date endDate1 = oracleDateFormat.parse("2011-12-31");
timePeriodValues.add(new Second(startDate1), 0.3);
timePeriodValues.add(new Second(endDate1), 0.3);
Date startDate2 = oracleDateFormat.parse("2012-01-01");
Date endDate2 = oracleDateFormat.parse("2015-12-31");
timePeriodValues.add(new Second(startDate2), 0.5);
timePeriodValues.add(new Second(endDate2), 0.5);
TimePeriodValuesCollection dataSet = new TimePeriodValuesCollection();
dataSet.addSeries(timePeriodValues);
JFreeChart chart = ChartFactory.createTimeSeriesChart("Title", "Time", "Value", dataSet, true, true, false);
XYPlot plot = chart.getXYPlot();
plot.setDomainPannable(true);
plot.setRangePannable(true);
ChartPanel chartPanel = new ChartPanel(chart);
return chartPanel;
}
}