java - JFreeChart:如何获取 XYItemEntity 的坐标?

标签 java swing jfreechart

我被这个问题困扰已经有一段时间了。我需要属于 XYItemEntity 的某些点的坐标。我正在绘制蜡烛图,想知道该商品的开盘价、收盘价、最高价、最低价的坐标是什么。 enter image description here

有什么办法可以实现这一点吗?

编辑:问题与此类似: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/

相关文章:

java - Spring Autowire 原始 boolean 值

java - 将密码字符替换为 JPasswordField 中的点

Java - 具有背景图像和正常功能的 JPanel

java - jfreeChart 中的甘特图?

java - 在 Java 中确定没有 InputEvent 对象的修饰键状态

java - java如何通过内存对象堆分配在android中工作

java - Chromecast - 如何拉伸(stretch)视频

java - JFrame 文本警报结果

java - 如何从java中的mysql数据库获取图表数据?

java - 将 JFreeChart 图表保存到特定目录