我正在使用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);
答案 0 :(得分:3)
JFreeChart
不是JComponent
,而是ChartPanel
。您可以使用here提到的任何适当方法来控制大小。
我希望所有窗口的大小相同。
在这种情况下,我会覆盖getPreferredSize()
以返回Dimension
等于width
和height
的{{1}}。您可以使用PiePlot#setCircular()
来保留PiePlot
的宽高比。
此example显示GridLayout(1, 0)
个图表,每个图表都有ThermometerPlot
:
答案 1 :(得分:0)
我已经找到了如何修复它,我所要做的就是不使用flowLayout,而是使用grouplay,因为面板正在放大图表,就像你在flowLayout中放一个按钮一样成为它包含区域的大小。谢谢大家的帮助。