【发布时间】:2013-10-16 11:07:17
【问题描述】:
我正在尝试使用 JFreeChart 在 netbeans 中的 jpanel 上显示一个简单的饼图,结果如下:
public void createPieChart()
{
DefaultPieDataset myPie = new DefaultPieDataset();
myPie.setValue("Apples",new Integer(12));
myPie.setValue("Oranges",new Integer(23));
myPie.setValue("Mangos",new Integer(7));
myPie.setValue("Pears",new Integer(22));
JFreeChart myChart = ChartFactory.createPieChart3D("Damo's Fruit Sales", myPie,true,true,true);
PiePlot3D pie3D = (PiePlot3D)myChart.getPlot();
ChartPanel myPanel = new ChartPanel(myChart);
lowerMain_PNL.removeAll();
lowerMain_PNL.add(myPanel,BorderLayout.CENTER);
lowerMain_PNL.revalidate();
}
我没有收到编译器错误,当它运行时,窗口会出现按钮,但是当我按下按钮时,我的饼图没有出现。有人知道我可能会错过什么吗?
【问题讨论】:
-
查看
lowerMain_PNL的布局管理器。如果您使用的是 netbeans gui builder,那么它很可能是GroupLayout。在运行时添加它是棘手的。将其更改为BorderLayout,因为您使用的是BorderLayout约束。 -
我将它设置为 BorderLayout 但仍然没有乐趣。我对使用 JFreeChart 有点陌生,所以我不确定我可能会错过什么。编辑:实际上我回去检查了您的建议是否有效。谢谢!
-
如果您怀疑JFreeChart可能会导致问题,您可以通过使用更简单的组件进行测试,例如
JLabel,首先检查组件的动态添加是否正常工作。我建议使用布局管理器,因为这是使用表单构建器时的常见罪魁祸首。 -
我认为问题不是JFreeChart,而是动态添加组件。通过在 SSCCE 中动态添加彩色面板来证明我错了。
-
如果@kiheru 没有回复,你可以answer your own question。
标签: java swing jpanel jfreechart layout-manager