2011-12-15 8 views
1

これは質問として非常に基本的に聞こえるかもしれませんが、私はJFreechartの使用に固執しています。 Jfree chart Subplotを見つけよう

は私が私の問題をレイアウトしてみましょう:

  1. 私は、必要なときにように私は私のサブプロットを追加するCombinedDomainXYPlotを持っています。私は私のカスタムJPopupメニューを使用しており、ユーザーが特定のサブプロット
  2. を削除する機能を提供することを目的としたメニュー項目が含まれている
  3. 私は1つがメインプロットのfindSubplotメソッドを使用してサブプロットを見つけることができると仮定しています。私はマウスの位置を取得することができますが、入力として必要なPlotRenderingInfoで何もできません。

助けていただければ幸いです。

+0

combineddomainxyplotのサブプロットを探したいと思います。私はそれがfindSubplot(PlotRenderingInfo情報、Point2Dソース)メソッドを使用して行うことができると仮定します。私は問題ではないように2DPointを見つけることができます。 PlotRendering情報パラメータを取得するにはどうすればよいですか? – Makarand

答えて

1

getSubplots()を使用してサブプロットのListを得ることができます。どのサブプロットがクリックされたかを知るには、hereのようにChartPanelから送信されたChartMouseEventを調べます。

補足:ChartMouseListenerの簡単な実装で、クリックしたときにそれぞれChartEntityが表示されます。

ChartPanel panel = ... 
panel.addChartMouseListener(new ChartMouseListener() { 

    @Override 
    public void chartMouseClicked(ChartMouseEvent e) { 
     System.out.println(e.getEntity().getClass()); 
    } 

    @Override 
    public void chartMouseMoved(ChartMouseEvent event) {} 
}); 
+0

@trashgodというコードをありがとう。私は今チャートエンティティを取得することができ、私はすでにサブプロットのリストを持っています。私は上記のコードは私にチャートエンティティを与えるので、サブプロットを削除する方法が混乱しています。私は上記のように 'getClass'を使ってみました。私は何が欠けていますか? – Makarand

+1

ああそれは解決しました。 'PlotEntityエンティティ=(PlotEntity)event.getEntity(); XYPlot subplot =(XYPlot)entity.getPlot(); plot.remove(subplot); '' plot'は私のCombinedDomainXYPlotを表します。ありがとう100万@trashgod – Makarand

+1

どこからでも呼び出すことができるもう一つの簡単な方法があります。 'plot.findSubplot(chartPanel.getChartRenderingInfo()。getPlotInfo()、chartPanel.getMousePosition());'ここで "chartPanel"あなたの 'ChartPanel'オブジェクトです – Makarand

関連する問題