我正在创建一个swing应用程序,并希望将JfreeChart添加到Jpanel . 我创建了一个方法,我可以在下面创建图表:
创建了一个全局变量:
JFreeChart chart;
创建图表的方法:
public void createChart(){
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
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?
);
}
然后我创建了ChartPanel并将其添加到附加到JFrame的JPanel:
JPanel reporting = new JPanel();
ChartPanel CP = new ChartPanel(chart);
reporting.add(CP,BorderLayout.CENTER);
reporting.validate();
reporting.setBounds(47, 59, 921, 439);
frame.getContentPane().add(reporting);
reporting.setLayout(new BorderLayout(0, 0));
我还创建了一个带有动作监听器的按钮,我在其中调用该方法,如下所示:
JButton btnReporting = new JButton("Reporting");
btnReporting.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
createChart();
}
});
出于某种原因,当我点击按钮时,图表没有显示 .
1 回答
一堆脱离上下文的代码并不能让你很容易理解你在做什么,但有些像......
首先,您需要删除以前在UI中显示的任何内容,否则您最终会在屏幕上显示多个图表,这可能会导致其他问题 .
接下来,在创建图表时,您需要实际添加到屏幕 . 它不会因为您创建新图表而“神奇地”更新
至少应该展示基本概念......