到目前为止,我使用TimeSeriesChart和DynamicTimeSeriesCollection来创建这样的图表:
但要求是让用户点击图表并定义“高”和“低”边界,如下图所示:
当我们在图表上单击鼠标时,我已经获得了这段代码来获取值:
public void chartMouseClicked(ChartMouseEvent cme) {
Point2D p = chart.translateScreenToJava2D(cme.getTrigger().getPoint());
Rectangle2D greyChartArea = chart.getChartRenderingInfo().getPlotInfo().getDataArea();
double valueY = ((NumberAxis) plot.getRangeAxis()).java2DToValue(p.getY(), greyChartArea, plot.getRangeAxisEdge());
double valueX = ((NumberAxis) plot.getDomainAxis()).java2DToValue(p.getX(), greyChartArea, plot.getDomainAxisEdge());
System.out.println(valueY);
}
问题是当用具有动态x轴的实时图表单击鼠标时如何绘制固定线? (该行上的点击点应该是可移动的并且能够删除)
任何指针都将受到赞赏。
//的更新:
到目前为止,我可以通过鼠标定义“高”和“低”区域,但问题是数据何时出现:
public void draw(Data data) {
dataset.advanceTime();
float[] info = new float[1];
info[0] = data.getInfo();
dataset.appendData(info);
}
“高”和“低”系列将消失或被推开。有什么方法可以使“高”和“低”固定线?