Java 如何在Jfreechart中进行鼠标跟踪?

Java 如何在Jfreechart中进行鼠标跟踪?,java,jfreechart,Java,Jfreechart,有人能告诉我如何在jfreechart中的图形上实现鼠标跟踪吗?您可以将ChartMouseListener附加到ChartPanel,在该面板上显示图表和绘图。以下是一个例子: public class JFreeChartTest extends JFrame { private static JFreeChart createPieChart(){ // Some dataset to display DefaultPieDataset data

有人能告诉我如何在jfreechart中的图形上实现鼠标跟踪吗?

您可以将
ChartMouseListener
附加到
ChartPanel
,在该面板上显示图表和绘图。以下是一个例子:

public class JFreeChartTest extends JFrame {

    private static JFreeChart createPieChart(){
        // Some dataset to display
        DefaultPieDataset data = new DefaultPieDataset();
        data.setValue("Java", new Double(45.0));
        data.setValue("C++", new Double(20.0));
        data.setValue("Visual Basic", new Double(0.0));
        // Chart creation
        return ChartFactory.createPieChart("Pie Chart", // title
                data, // data
                true, // include legend
                true, false);
    }

    public JFreeChartTest(){
        initialize();
    }

    private void initialize(){
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        JPanel contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(10, 10, 10, 10));
        contentPane.setLayout(new BorderLayout(0, 0));
        setContentPane(contentPane);
        {
            final ChartPanel chartPanel = new ChartPanel((JFreeChart)null);
            contentPane.add(chartPanel, BorderLayout.CENTER);
            final JFreeChart pieChart = createPieChart();
            chartPanel.setChart(pieChart);
            chartPanel.addChartMouseListener(new ChartMouseListener() {

                @Override
                public void chartMouseClicked(final ChartMouseEvent event){
                    System.out.println("chartMouseClicked");
                }

                @Override
                public void chartMouseMoved(final ChartMouseEvent event){
                    int newX = event.getTrigger().getX();
                    int newY = event.getTrigger().getY();
                    System.out.println("chartMouseMoved to " + newX + " " + newY);
                }
            });
        }
    }

    public static void main(String[] args){
        JFreeChartTest frame = new JFreeChartTest();
        frame.setVisible(true);
    }
}    

谢谢你能告诉我如何实现——当鼠标跟踪时,指针显示在曲线上,它像在股市图形中一样在移动鼠标上在线移动??这个功能是内置的。您只需要添加
chartPanel.setHorizontalAxisTrace(true)
chartPanel.SetVerticalExistrace(真)我也实现了它,但当轴轨迹变得模糊时,会出现刷新问题。你能告诉我怎么解决吗?你的问题离题了。如果您需要帮助,请创建一个新问题并详细描述您的新问题。使用图形上显示的轴跟踪线,是否有任何方法可以在鼠标移动时仅显示图形上的点而不是跟踪线?