我已经坚持这个问题很长一段时间了。我需要属于XYItemEntity的某些点的坐标。我正在绘制烛台图表,并想知道该项目的开盘价,收盘价,高价,低价的坐标是什么。
有没有办法实现这个目标?
编辑:问题类似于这个问题:https://stackoverflow.com/questions/30801444/jfreecharthow-to-get-coordinates-of-a-chartentity-and-snap-mouse-cursor-to-the但从那以后我改变了方法。我想要实现的目标如下: 我画的是Candelistick图表。如上所述,我希望用户能够将鼠标“捕捉”到蜡烛的4个值之一:高,低,开,关。为了实现这个功能,我想我会在ChartPanel上构建一个Points集合,它们对应于当前显示的所有蜡烛的值。然后,通过将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;
}
希望现在有点清楚。
答案 0 :(得分:1)
CandlestickRenderer
在ChartEntity
的实施中收集drawItem()
个信息,但它缺少您想要的解决方案。所需的几何图形是针对每个项目即时计算的,并且从不显式存储。如果没有全新的渲染器,一种方法是使用从JTable
获取的相关数据更新相邻的OHLCDataset
。授予ChartMouseListener
OHLCDataset
个TableModel
访问权限,获取对JTable
数据集的引用,并使用其访问者方法履行application.yml
合同,如图所示TableModel
。具体细节取决于您的要求,但您可以利用# app/models/settings.rb
class Settings < Settingslogic
source "#{Rails.root}/config/application.yml"
namespace Rails.env
end
here。