【问题标题】:Chart Wont Show When I Run It?运行时图表不显示?
【发布时间】: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


【解决方案1】:

查看lowerMain_PNL的布局管理器。 Netbeans 表单设计器默认使用GroupLayout,所以除非您更改它,否则就是您得到的。在运行时使用GroupLayout 添加到容器是很棘手的,特别是如果组件包含多个子组件(并且需要将组件添加到布局,而不是使用通常的add() 方法)。

改为BorderLayout,因为您使用的是BorderLayout 约束。

【讨论】:

    猜你喜欢
    • 2018-03-07
    • 2021-02-28
    • 2018-01-18
    • 2012-11-07
    • 1970-01-01
    • 1970-01-01
    • 2012-03-01
    相关资源
    最近更新 更多