2012-04-14 75 views
1

我正在使用JFreeChart繪製XYPlot。我目前正在嘗試做什麼:檢查點是否屬於圖

  1. 用戶單擊該圖並且該應用程序將其返回到所選點的座標;我認爲我說得對。這裏是一些代碼:

    public void chartMouseClicked(ChartMouseEvent arg0) { 
          Rectangle2D plotArea = chPanel.getScreenDataArea(); 
          XYPlot plot = (XYPlot) chart.getPlot(); 
          double chartX = plot.getDomainAxis().java2DToValue(arg0.getTrigger().getPoint().getX(), plotArea, plot.getDomainAxisEdge()); 
          double chartY = plot.getRangeAxis().java2DToValue(arg0.getTrigger().getPoint().getY(), plotArea, plot.getRangeAxisEdge()); 
          JOptionPane.showMessageDialog(null, " x: "+chartX+ " y: "+chartY);}  
    
  2. 我需要確定用戶是否點擊該行或不。目標是標記點擊的點,如果它在繪製的圖上。

我將不勝感激任何線索。

回答

1

代替使用座標,請添加ChartMouseListener,如here所示。您可以查看ChartMouseEvent和任何相應的ChartEntity瞭解各種細節。

+0

據我瞭解這適用於BarChart,選擇整個酒吧。我需要選擇XY Chart上的選擇點,所以我不確定我是否可以使用它。如我錯了請糾正我。 – Jandrejc 2012-04-14 19:24:49

+0

這適用於任何'ChartEntity'子類。 – trashgod 2012-04-14 21:20:18

0
ShapeUtilities.intersects(java.awt.geom.Rectangle2D rect1, java.awt.geom.Rectangle2D rect2) 

其中,rect2可以是「0」長方形(用於您的要點)。