import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;
public class JfreeChartPie {
System.out.println("piechart");
public static void main(String[] args) {
System.out.println("piechart");
// TODO Auto-generated method stub
// create a dataset...
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("Category 1", 43.2);
dataset.setValue("Category 2", 27.9);
dataset.setValue("Category 3", 79.5);
// create a chart...
JFreeChart chart = ChartFactory.createPieChart(
"Sample Pie Chart",
dataset,
true,
// legend?
true,
// tooltips?
false
// URLs?
);
// create and display a frame...
ChartFrame frame = new ChartFrame("First", chart);
//frame.pack();
frame.setSize(300, 300);
frame.setVisible(true);
}
}
我运行的是Debian 9 GNU Linux和Eclipse 2018-09 我从控制台获得的只是关于jfreechart许可证的文本,看来它并没有执行代码。我没有问题。
答案 0 :(得分:1)
为避免此类异常,请验证您在event dispatch thread上仅 构造和操作Swing GUI对象。如here所述,“程序可能会出现正常工作,只是在不同的环境中神秘地失败。”供参考,我已相应修改了您的示例。
$ javac -cp .:$JFC JFreeChartPie.java && "$JRE" -cp .:$JFC JFreeChartPie
import java.awt.EventQueue;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;
public class JFreeChartPie {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
System.out.println("piechart");
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("Category 1", 43.2);
dataset.setValue("Category 2", 27.9);
dataset.setValue("Category 3", 79.5);
JFreeChart chart = ChartFactory.createPieChart(
"Sample Pie Chart", dataset, true, true, false);
ChartFrame frame = new ChartFrame("Title", chart);
frame.pack();
frame.setSize(400, 400);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}