【问题标题】:Add a JFreeChart in to JPanel将 JFreeChart 添加到 JPanel
【发布时间】:2011-12-18 05:39:49
【问题描述】:

如果我有我的 Jpanel 和我的 JFreeChart。如何将此图表添加到 JPanel?

XYSeries series = new XYSeries("XYGraph");
   series.add(1, 1);
   series.add(1, 2);
   series.add(2, 1);
   series.add(3, 9);
   series.add(4, 10);

// Add the series to your data set
   XYSeriesCollection dataset = new XYSeriesCollection();
   dataset.addSeries(series);

// Generate the graph
   JFreeChart chart = ChartFactory.createXYLineChart(
   "XY Chart", // Title
   "x-axis", // x-axis Label
   "y-axis", // y-axis Label
   dataset, // Dataset
   PlotOrientation.VERTICAL, // Plot Orientation
   true, // Show Legend
   true, // Use tooltips
   false // Configure chart to generate URLs?
);

现在,如何在我的 Jpanle 中添加图表?

【问题讨论】:

    标签: java swing user-interface jpanel jfreechart


    【解决方案1】:

    这里有一个很好的教程可以引导你进一步:How to embed JFreeChart in JPanel

    【讨论】:

      【解决方案2】:

      来自旧的java forums thread

      JPanel jPanel1 = new JPanel();
      jPanel1.setLayout(new java.awt.BorderLayout());
       ..
      ChartPanel CP = new ChartPanel(chart);
      .. 
      jPanel1.add(CP,BorderLayout.CENTER);
      jPanel1.validate();
      

      【讨论】:

        【解决方案3】:
        JFreeChart chart = new JFreeChart("Cos(x) and Cos^2(x) versus x", parent);
        ChartPanel myChart = new ChartPanel(chart);
        myChart.setMouseWheelEnabled(true);
        jPanel1.setLayout(new java.awt.BorderLayout());
        jPanel1.add(myChart,BorderLayout.CENTER);
        jPanel1.validate();
        

        【讨论】:

          【解决方案4】:

          我遇到了同样的问题,但我能够找到解决此问题的方法。

          JPanel panel = new JPanel();
          		panel.setBackground(new Color(255, 102, 51));
          		panel.setBounds(50, 64, 955, 888);
          		frame.getContentPane().add(panel);
          		panel.setLayout(null); //Absolute Layout
          
          XYSeries series = new XYSeries("XY Chart");
          		XYSeriesCollection dataset = new XYSeriesCollection(series);
          		JFreeChart chart = ChartFactory.createTimeSeriesChart("Testing Chart", "Date", "Average Profit", dataset);
          		
          		ChartPanel chartPanel = new ChartPanel((JFreeChart) null);
          		chartPanelH2S.setChart(chart);
          		chartPanelH2S.setBounds(39, 193, 419, 309);
          		panel.add(chartPanel);
          frame.setVisible(true);

          希望对你有帮助

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-08-08
            • 2010-12-18
            • 2011-05-06
            • 2013-05-04
            相关资源
            最近更新 更多