gpt4 book ai didi

java - JFreeChart 中的十字线追踪

转载 作者:行者123 更新时间:2023-12-01 05:58:05 25 4
gpt4 key购买 nike

我能够实现实时鼠标跟踪,如下所示:

alt text

源代码如下:

http://jstock.cvs.sourceforge.net/viewvc/jstock/jstock/src/org/yccheok/jstock/charting/CrossHairUI.java?revision=1.5&view=markup

http://jstock.cvs.sourceforge.net/viewvc/jstock/jstock/src/org/yccheok/jstock/gui/ChartJDialog.java?revision=1.9&view=markup

但是,当添加子图时,我无法获得正确的 y 屏幕坐标。

(broken image)

我怀疑我没有获得正确的屏幕数据区域。

当屏幕中只有一个图时,我得到一个高度为 300++ 的屏幕数据区域

当将子图添加到底部时,由于新添加的子图占用的高度,我预计屏幕数据区域的高度将会减小。

但是,我不知道如何获取第一个图的正确屏幕数据区域。

final XYPlot plot = (XYPlot) cplot.getSubplots().get(0);

// Shall I get _plotArea represents screen for getSubplots().get(0)?
// How?
// I try
//
// chartPanel.getScreenDataArea(0, 0);
// chartPanel.getScreenDataArea(0, 1);
// chartPanel.getScreenDataArea(1, 0);
// chartPanel.getScreenDataArea(1, 1);
//
// All returned null

// OK. I suspect this is causing me unable to get the correct screen y coordinate
// I always get the same _plotArea, although a new sub plot had been added.
final Rectangle2D _plotArea = chartPanel.getScreenDataArea();

final RectangleEdge rangeAxisEdge = plot.getRangeAxisEdge();

final double yJava2D = rangeAxis.valueToJava2D(yValue, _plotArea, rangeAxisEdge);

最佳答案

下面是深入了解 JFreeChart 源代码后获取正确矩形的代码片段。

/* Try to get correct main chart area. */
final Rectangle2D _plotArea = chartPanel.getChartRenderingInfo().getPlotInfo().getSubplotInfo(0).getDataArea();

关于java - JFreeChart 中的十字线追踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2204383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com