2011-09-16 12 views

उत्तर

5

आप 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); 
    } 
}  
+0

धन्यवाद आप कृपया मुझे बताओ कैसे लागू करने के लिए कर सकते हैं - जबकि माउस ट्रेसिंग, ग्राफ रेखा है जो शेयर बाजार ग्राफ में की तरह माउस को ले पर लाइन पर ले जाता है पर सूचक प्रदर्शन ?? –

+3

यह कार्यक्षमता अंतर्निहित है। आपको केवल 'chartPanel.setHorizontalAxisTrace (true);' और 'chartPanel.setVerticalAxisTrace (true);' –

+0

मैंने इसे कार्यान्वित किया है, लेकिन धुरी के निशान के साथ ताज़ा समस्या है क्योंकि यह धुंधला हो जाता है। क्या आप बता सकते हैं कि इससे कैसे बाहर निकलना है? –

संबंधित मुद्दे