1

プログラムで JFreeChart を使用してチャートを作成しています。私の問題は、高さを適切に設定できないことです。考えられるすべてのコマンドを試しましたが、他のパネルに配置しましたが、何も機能しません。隅のどこかに置くことができるようにしたい...または本当にどこにでも置き、幅と高さの両方を設定できるようにしたい. setPreferredSize も試してみましたが、幅でしか機能しません。

コード :

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);
4

2 に答える 2

3

AJFreeChartは ではありませんJComponentが、ChartPanelです。ここに記載されている適切なアプローチを使用して、サイズを制御できます。

すべてのウィンドウを同じサイズにしたい

この場合、等しいandgetPreferredSize()を返すようにオーバーライドします。の縦横比を維持するために使用できます。DimensionwidthheightPiePlot#setCircular()PiePlot

このGridLayout(1, 0)は、それぞれが を持つグラフの を示していThermometerPlotます。

画像

于 2013-04-21T19:18:39.877 に答える
0

私はそれを修正する方法を見つけました.flowLayoutを使用するのではなく、grouplayoutを使用するだけで済みます.flowLayoutにボタンを配置した場合と同じように、パネルがチャートを拡大していたため、サイズが大きくなります.それが含まれているゾーンの。素晴らしい助けをありがとうございました。

于 2013-04-22T09:31:57.183 に答える