java - 如何在jfreechart xy图中获取鼠标的y或x轴坐标

标签 java mouse coordinates jfreechart

我已经成功使用 jfreechart 绘制了一个包含几个点的 xy 图表。

我想要做的是能够单击已绘制线上的任意位置并获取其 x 或 y 轴值。

有人可以帮我吗? 这是我第一次使用j freechart,感觉有些失落。

到目前为止,我创建了数据集并生成了图表。

TimeSeries s = new TimeSeries("security", Day.class);
        while (rate_i.hasNext()) {    
            rate r = (rate) rate_i.next();    
            Calendar cal = Calendar.getInstance();
            cal.setTime(r.d);
            int month = cal.get(Calendar.MONTH) + 1;
            int day = cal.get(Calendar.DATE);
            int year = cal.get(Calendar.YEAR);
            s.add(new Day(day, month, year), r.rate);    
        }
        TimeSeriesCollection ds = new TimeSeriesCollection();
        ds.addSeries(s);
        JFreeChart chart = ChartFactory.createTimeSeriesChart(
                "Security Performance over time.", // title
                "Date", // x-axis label
                "Value", // y-axis label
                ds, // data
                true, // create legend?
                true, // generate tooltips?
                false // generate URLs?
                );
        XYPlot xyplot = (XYPlot) chart.getPlot();
        xyplot.setDomainPannable(true);
        xyplot.setRangePannable(false);
        xyplot.setDomainCrosshairVisible(true);
        xyplot.setRangeCrosshairVisible(true);
        org.jfree.chart.renderer.xy.XYItemRenderer xyitemrenderer = xyplot
                .getRenderer();
        if (xyitemrenderer instanceof XYLineAndShapeRenderer) {
            XYLineAndShapeRenderer xylineandshaperenderer = 
                  (XYLineAndShapeRenderer) xyitemrenderer;
            xylineandshaperenderer.setBaseShapesVisible(false);
        }
        DateAxis dateaxis = (DateAxis) xyplot.getDomainAxis();
        dateaxis.setDateFormatOverride(
             new SimpleDateFormat("EEE, MMM d, ''yy"));    
        ChartFrame frame = new ChartFrame("Chart", chart);
        frame.setVisible(true);
        frame.setSize(700, 900);

最佳答案

ChartMouseListener 添加到封闭的 ChartPanel 中;例子可见herehereChartEntity 将包含有关鼠标目标的详细信息。

关于java - 如何在jfreechart xy图中获取鼠标的y或x轴坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18455631/

相关文章:

java - 如何使自定义警报对话框正确显示

java - IO 错误 : The Network Adapter could not establish the connection when running oracle DB as docker container

c++ - 如何将光标移动到 C++ 中最后打开的窗口(可能是弹出窗口)

java - 如何更改鼠标悬停时的图标?

python 3.6。获取所有相同 X 坐标的平均 Y

r - 在ggmap中绘制曲线,geom_curve不起作用

java - 获取图像的所有 RGB 颜色

java - Spring MVC 验证表单并在出现错误时返回数据

objective-c - 鼠标跟踪守护进程

ios - 第一次 map 头无处可去