网格线
这是Nicole的第一篇博客,以后就在这里记录自己的成长史吧!
第一种方式
使用Series进行系列添加,每个系列都是两点绘制成一条线
for(int i=scale;i<=xAxis.getUpperBound()-xAxis.getLowerBound();i+=scale) {
XYChart.Series<Number,Number> vLine = new XYChart.Series<Number,Number>();
XYChart.Data<Number, Number> vLineData1 = new XYChart.Data<Number, Number>(i, 0);
XYChart.Data<Number, Number> vLineData2 = new XYChart.Data<Number, Number>(i, 100);
vLine.getData().addAll(vLineData1,vLineData2);
chart.getData().add(vLine);
}
第二种方式
这是看源码学到的,由于在尝试第一次时网格线是一条条添加,渲染实在太多,所以会导致网格线太多时,运行会卡死。
先定义Path
Path verticalGridLines=new Path();//横向格子线
Path verticalMinorGridLines=new Path();//横向小格子线
在path上添加,最后再将path添加到图表Chart上
verticalGridLines.getElements().clear();
for(int i=0; i <xaTickMarks.size(); i++) {
double x = xAxis.getDisplayPosition(xaTickMarks.get(i));
if ((x!=xAxisZero) && x > 0 && x <= xAxisWidth+100) {
verticalGridLines.getElements().add(new MoveTo(x+15,0));
verticalGridLines.getElements().add(new LineTo(x+15,yAxis.getHeight()+5));
}
}
深感遇到问题解决问题,不慌,要自信自己可以解决的必胜信念,累了歇一歇,头脑冷静一下
第一次写博客,不好的地方望各位大神见谅!有不对的地方望大佬们不吝指教