0

JFreeChart を使用して XYLineChart (とりわけ) を作成するアプリを作成しましたが、最近 JFreeChart 内でバグに遭遇しました。これにより、チャートの x 軸または y 軸が非常に小さい範囲 (低い値または値間の最小差) に設定されている場合x 軸または y 軸の)、チャートは通常どおりにプロットされますが、その軸の目盛りラベルはすべて消えます。これは、ユーザーがグラフを拡大しすぎた場合にも発生します。

アプリの UI にボタンを追加することで、これを回避することができました。このボタンを使用すると、グラフを作成または拡大した後にユーザーが軸を更新できます。このボタンのアクション リスナーは目盛りラベルを再設定し、軸に正しく表示されます。

今、私が作ったボタンを使用する代わりに、これが自動的に行われるようにしたい. そのためには、ChartPanel.zoom() メソッドの実行が終了した直後に実行されるチャート パネル作成のどこかにこのコードを配置する必要があります。

私の質問は、ユーザーがチャートを拡大すると、zoom() コードの実行が終了した後に何が起こるかということです。コントロールは次にどこに行きますか? または、 zoom() メソッドが実行された後に毎回実行される数行のコードを追加する方法はありますか?

誰か提案があれば、できるだけ早く教えてください。ありがとう。

4

1 に答える 1

0

オブジェクトに を追加しPlotChangeListenerて、ズーム イベントを処理しました。Plotこれはさまざまなイベントの後に呼び出されますが、そのうちの 1 つがズームです。例えば:

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).");
  }});
于 2014-03-21T12:13:13.990 に答える