JFreeChart:在Zoom()之后添加代码 - 以防止消失Tick标签

时间:2013-10-23 14:08:33

标签: java jfreechart

我创建了一个使用JFreeChart创建XYLineChart(以及其他内容)的应用程序,但最近在JFreeChart中遇到了一个错误,如果图表的x或y轴设置为非常小的范围(低值或最小差异)在x或y轴的值之间),图表将照常绘制,但所述轴上的所有刻度标签将消失。如果用户将图表放大太远,也会发生这种情况。

我已经设法通过在我的应用程序的UI中添加一个按钮来解决这个问题,该按钮允许用户在制作或放大图表后刷新轴。此按钮的动作侦听器重新设置刻度标签,然后它们在轴上正确显示。

现在,我希望自动完成此操作,而不是使用我制作的按钮。为此,我需要将此代码放在Chart Panel创建中的某个位置,在ChartPanel.zoom()方法完成执行后立即执行该代码。

我的问题是,当用户放大图表时,zoom()代码完成执行后会发生什么?控制下一步在哪里?或者,有没有办法在每次执行zoom()方法后添加几行代码?

如果有人有任何建议,请尽快告诉我。感谢。

1 个答案:

答案 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).");
  }});