如何禁用 ChartViewer 中的缩放
How to disable zoom in a ChartViewer
我正在其中使用 jfreechart-fx. I created a scroll panel and I have a ChartViewer
(不是 ChartPanel)。在图表内,我使用 CombinedDomainXYPlot
绘制数据。我在运行时向组合图中添加了一些数据:
XYPlot subplot;
for (int i=0; i<10; i++){
dataset = .....
subplot = new XYPlot(dataset, null, rangeAxis1, renderer);
myCombinedPlot.add(subplot)
}
String panel_title = "bla bla";
myChartViewer.setChart(new JFreeChart(panel_title, JFreeChart.DEFAULT_TITLE_FONT, myCombinedPlot, false));
现在,当我在图表上拖放时,我看到鼠标的默认操作是信号上的缩放。 如何禁用此默认功能?我尝试了以下方法,但它不起作用:
myChartViewer.getCanvas().setRangeZoomable(false);
myChartViewer.getCanvas().setDomainZoomable(false);
此行为由 ChartViewer
构造函数安装的 ZoomHandlerFX
实例控制。要完全消除缩放,只需删除处理程序即可。
ChartViewer chartViewer = new ChartViewer(chart);
ChartCanvas canvas = chartViewer.getCanvas();
canvas.removeMouseHandler(canvas.getMouseHandler("zoom"));
如果您以后需要恢复处理程序,请调用 addMouseHandler()
,例如 this:
canvas.addMouseHandler(new ZoomHandlerFX("zoom", chartViewer));
我正在其中使用 jfreechart-fx. I created a scroll panel and I have a ChartViewer
(不是 ChartPanel)。在图表内,我使用 CombinedDomainXYPlot
绘制数据。我在运行时向组合图中添加了一些数据:
XYPlot subplot;
for (int i=0; i<10; i++){
dataset = .....
subplot = new XYPlot(dataset, null, rangeAxis1, renderer);
myCombinedPlot.add(subplot)
}
String panel_title = "bla bla";
myChartViewer.setChart(new JFreeChart(panel_title, JFreeChart.DEFAULT_TITLE_FONT, myCombinedPlot, false));
现在,当我在图表上拖放时,我看到鼠标的默认操作是信号上的缩放。 如何禁用此默认功能?我尝试了以下方法,但它不起作用:
myChartViewer.getCanvas().setRangeZoomable(false);
myChartViewer.getCanvas().setDomainZoomable(false);
此行为由 ChartViewer
构造函数安装的 ZoomHandlerFX
实例控制。要完全消除缩放,只需删除处理程序即可。
ChartViewer chartViewer = new ChartViewer(chart);
ChartCanvas canvas = chartViewer.getCanvas();
canvas.removeMouseHandler(canvas.getMouseHandler("zoom"));
如果您以后需要恢复处理程序,请调用 addMouseHandler()
,例如 this:
canvas.addMouseHandler(new ZoomHandlerFX("zoom", chartViewer));