JFreeChart 交互式图表编辑处理 ChartMouseEvent
我试图拦截 ChartMouseEvent 以便修改使用 ChartFactory.createXYLineChart 方法创建的 JFreeChart 对象的 XYSeries(并使用 JDialog 显示)。
我通过这种方式成功检索鼠标事件的坐标:
public void chartMouseMoved(ChartMouseEvent arg0) {
int x = arg0.getTrigger().getX();
int y = arg0.getTrigger().getY();
坐标系的原点 (0,0) 位于就在图中的红色方块处。 现在,我想计算鼠标所在的间隔。为了做到这一点,我需要:
- 灰色图表的左上角坐标(绿色方块)
- 灰色图表的高度和宽度
如何获得这些值?
注:我是 JFreeChart 新手。如果我做错了,并且有更好的方法来实现这些目标,请引导我走向正确的方向。
I'm trying to intercept ChartMouseEvent in order to modify an XYSeries of a JFreeChart object created with ChartFactory.createXYLineChart method (and displayed using a JDialog).
I retrieve successfully the coordinate of the mouse event this way:
public void chartMouseMoved(ChartMouseEvent arg0) {
int x = arg0.getTrigger().getX();
int y = arg0.getTrigger().getY();
The origin of the coordinate system (0,0) is located at the red square in the picture.
Now, I would like to calculate in which interval is the mouse in. In order to do this I need:
- the top-left coordinate of the grey chart (green square)
- height and width of the grey chart
How can I get this values?
A note: I'm a JFreeChart newbie. If I'm doing this wrong, and there is a better way to do achive these goals, please put me in the right direction.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您是否通过
ChartPanel
渲染绘图?如果是这样,请查看
ChartPanel.getChartRenderingInfo().getPlotInfo().getDataArea()
。这应该返回一个易于使用的 Rectangle2D 。Are you rendering the plot via
ChartPanel
?If so, take a look at
ChartPanel.getChartRenderingInfo().getPlotInfo().getDataArea()
. This should return aRectangle2D
that is easy to work with.