我被这个问题困扰已经有一段时间了。我需要属于 XYItemEntity 的某些点的坐标。我正在绘制蜡烛图,想知道该商品的开盘价、收盘价、最高价、最低价的坐标是什么。
有什么办法可以实现这一点吗?
编辑:问题与此类似:https://stackoverflow.com/questions/30801444/jfreecharthow-to-get-coordinates-of-a-chartentity-and-snap-mouse-cursor-to-the但从那时起我改变了方法。我想要实现的目标如下: 我正在绘制烛台图。如上所述,我希望用户能够将鼠标“捕捉”到蜡烛的 4 个值之一:最高价、最低价、开盘价、收盘价。为了实现此功能,我想我将在 ChartPanel 上构建一个点集合,该集合将对应于当前显示的所有蜡烛的值。然后,通过将 ChartMouseListener 添加到 ChartPanel,在 ChartMouseMoved 方法中,我将检查光标是否非常接近这些点中的任何一个。 这里我将 MouseChartListener 添加到 ChartPanel:
chartPanel.addChartMouseListener(new MyChartMouseListener());
在此方法中,我想检查光标是否靠近任何蜡烛:
@Override
public void chartMouseClicked(ChartMouseEvent chartMouseEvent) {
int x = chartMouseEvent.getTrigger().getX();
int y = chartMouseEvent.getTrigger().getY();
getCandleCloseToCursor(x,y);
}
我的 getCandleCloseToCursor 方法应该是什么样子?
private Point getCandleCloseToCursor(int x, int y) {
//return point that belongs to the candle near the x,y position;
//either high, low, close, open position
return null;
}
希望现在更清楚一点。
最佳答案
一个CandlestickRenderer
在其 drawItem()
实现中收集 ChartEntity
信息,但它缺乏您想要的分辨率。所需的几何形状是为每个项目动态计算的,并且从不显式存储。如果没有全新的渲染器,一种方法是使用从 OHLCDataset
获取的相关数据更新相邻的 JTable
。给你的TableModel
访问 ChartMouseListener
,获取对 OHLCDataset
数据集的引用,并使用其访问器方法来履行 TableModel
协定,如 here 所示。确切的详细信息取决于您的要求,但您也许可以利用 JTable
filtering .
关于java - JFreeChart:如何获取 XYItemEntity 的坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30842865/