java饼图高度未正确放置

时间:2013-04-21 17:56:04

标签: java swing charts jfreechart pie-chart

我正在使用JFreeChart在我的程序中制作图表。我的问题是我无法正确设置高度。我已经尝试了我能想到的每一个命令,我把它放在其他面板中,然而,没有任何作用。 我希望能够把它放在角落的某个地方......或任何地方,并且能够设置宽度和高度。我也尝试过使用setPrefferedSize,但它只适用于宽度。

代码:

DefaultPieDataset result = new DefaultPieDataset();
    result.setValue("TotalSwag", totalSwag);
    result.setValue("TotalYolo", totalYolo);
    result.setValue("TotalCool", totalCool);
    result.setValue("TotalLame", totalLame);
    JFreeChart chart = ChartFactory.createPieChart3D("Swag-O-meter", result, true, true, false);
    PiePlot3D plot = (PiePlot3D) chart.getPlot();
    plot.setStartAngle(290);
    plot.setDirection(Rotation.CLOCKWISE);
    plot.setForegroundAlpha(0.5f);
    ChartPanel chartPanel = new ChartPanel(chart, W, H, W, H, W, H,
            false, true, true, true, true, true);
    chartPanel.setMaximumSize(new Dimension(150, 150));

    charPanel.add(chartPanel);
    charPanel.setSize(W, H);
    contentPane.add(charPanel, BorderLayout.WEST);

2 个答案:

答案 0 :(得分:3)

JFreeChart不是JComponent,而是ChartPanel。您可以使用here提到的任何适当方法来控制大小。

  

我希望所有窗口的大小相同

在这种情况下,我会覆盖getPreferredSize()以返回Dimension等于widthheight的{​​{1}}。您可以使用PiePlot#setCircular()来保留PiePlot的宽高比。

example显示GridLayout(1, 0)个图表,每个图表都有ThermometerPlot

image

答案 1 :(得分:0)

我已经找到了如何修复它,我所要做的就是不使用flowLayout,而是使用grouplay,因为面板正在放大图表,就像你在flowLayout中放一个按钮一样成为它包含区域的大小。谢谢大家的帮助。