我创建了一个使用JFreeChart创建XYLineChart(以及其他内容)的应用程序,但最近在JFreeChart中遇到了一个错误,如果图表的x或y轴设置为非常小的范围(低值或最小差异)在x或y轴的值之间),图表将照常绘制,但所述轴上的所有刻度标签将消失。如果用户将图表放大太远,也会发生这种情况。
我已经设法通过在我的应用程序的UI中添加一个按钮来解决这个问题,该按钮允许用户在制作或放大图表后刷新轴。此按钮的动作侦听器重新设置刻度标签,然后它们在轴上正确显示。
现在,我希望自动完成此操作,而不是使用我制作的按钮。为此,我需要将此代码放在Chart Panel创建中的某个位置,在ChartPanel.zoom()方法完成执行后立即执行该代码。
我的问题是,当用户放大图表时,zoom()代码完成执行后会发生什么?控制下一步在哪里?或者,有没有办法在每次执行zoom()方法后添加几行代码?
如果有人有任何建议,请尽快告诉我。感谢。
答案 0 :(得分:0)
我通过向PlotChangeListener
对象添加Plot
来处理缩放事件。这将在各种事件之后调用,其中一个事件是缩放。 E.g:
chart.getPlot().addChangeListener(new PlotChangeListener(){
@Override
public void plotChanged(PlotChangeEvent event)
{
System.out.println("I am called after a zoom event (and some other events too).");
}});