Add a JFreeChart in to JPanel
Asked Answered
I

4

13

if i have a my Jpanel and a my JFreeChart. How can I add this Chart in to the 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?
);

and now, how can i add chart in my JPanle?

Inseverable answered 30/10, 2011 at 14:47 Comment(0)
A
24

From an old 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();
Arthritis answered 30/10, 2011 at 14:51 Comment(0)
U
4

Here is a good tutorial to lead you further : How to embed JFreeChart in JPanel

Unbar answered 30/10, 2011 at 14:49 Comment(0)
P
1
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();
Preoccupied answered 2/4, 2012 at 16:46 Comment(0)
W
0

I was having the same problem but I was able to identify a way to solve this.

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);

Hope this helps

Whetstone answered 23/11, 2017 at 14:21 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.