2012-04-14 54 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”长方形(用于您的要点)。