首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在JFreeChart中点击并输出[我的例子中的价格]的Y值?

在JFreeChart中,要实现点击并输出指定数据点的Y值,可以通过以下步骤完成:

  1. 创建一个ChartMouseListener,用于监听图表的鼠标事件。
  2. 在ChartMouseListener中,通过ChartMouseEvent获取鼠标点击的坐标位置。
  3. 利用ChartRenderingInfo对象,将坐标位置转换为图表中的数据点。
  4. 通过数据点的索引,获取对应的数据集。
  5. 从数据集中获取指定数据点的Y值,并进行输出。

下面是一个示例代码:

代码语言:txt
复制
import org.jfree.chart.ChartMouseEvent;
import org.jfree.chart.ChartMouseListener;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.entity.ChartEntity;
import org.jfree.chart.entity.XYItemEntity;
import org.jfree.chart.plot.XYPlot;
import org.jfree.data.xy.XYDataset;

public class MyChartMouseListener implements ChartMouseListener {

    private JFreeChart chart;

    public MyChartMouseListener(JFreeChart chart) {
        this.chart = chart;
    }

    @Override
    public void chartMouseClicked(ChartMouseEvent event) {
        ChartEntity entity = event.getEntity();
        if (entity instanceof XYItemEntity) {
            XYItemEntity itemEntity = (XYItemEntity) entity;
            XYDataset dataset = itemEntity.getDataset();
            int seriesIndex = itemEntity.getSeriesIndex();
            int itemIndex = itemEntity.getItem();
            double yValue = dataset.getYValue(seriesIndex, itemIndex);
            System.out.println("Y value: " + yValue);
        }
    }

    @Override
    public void chartMouseMoved(ChartMouseEvent event) {
        // Do nothing
    }
}

// 在使用JFreeChart生成图表的代码中,添加以下代码来注册ChartMouseListener
JFreeChart chart = ...; // 生成图表的代码
ChartRenderingInfo info = new ChartRenderingInfo();
chart.addChangeListener(new StandardChartChangeListener());
chart.addProgressListener(new ChartProgressListener() {
    @Override
    public void chartProgress(ChartProgressEvent event) {
        if (event.getType() == ChartProgressEvent.DRAWING_FINISHED) {
            chart.removeChangeListener(this);
            chart.addChartMouseListener(new MyChartMouseListener(chart));
        }
    }
});
chart.draw(graphics2D, new Rectangle2D.Double(0, 0, width, height), info);

这样,当用户在图表上点击某个数据点时,就会输出该数据点的Y值。

JFreeChart是一个开源的Java图表库,用于创建各种类型的静态和动态图表。它支持多种图表类型,包括折线图、柱状图、饼图等。JFreeChart提供了丰富的配置选项和交互功能,使得开发人员可以轻松地创建出具有各种样式和效果的图表。

推荐的腾讯云相关产品:腾讯云服务器(https://cloud.tencent.com/product/cvm)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券