Ich habe ein 3DPieChart deklariert, und ich möchte seinen Hintergrund/Transparenz ändern. In diesem Fall, unter "Hintergrund" verstehe ich diesen Leerraum.Wie ändere ich den Hintergrund/die Transparenz eines 3dPieChart (JFreeChart API)?
Hier ist die Funktion, die diese Grafik implementiert, wenn es irgendwie nützlich ist.
//customize panel for visualising the statistics
public void customizeStatisticsPanelWhenButtoninIsPressed()
{
transactionsCenterFinalPanel.setLayout(new BorderLayout());
//center side of then main panel
JPanel statisticsPanelCenter = new JPanel();
statisticsPanelCenter.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED));
//create a dataset
DefaultPieDataset pieDataSet = new DefaultPieDataset();
//add values to dataset
pieDataSet.setValue("Deposit:", depositCount);
pieDataSet.setValue("Withdraw:", withdrawCount);
pieDataSet.setValue("Transfer:", transferCount);
//create a 3D chart with the given title that appears above the chart
JFreeChart chart = ChartFactory.createPieChart3D(" ", pieDataSet, true, false, true);
final ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new Dimension(315, 195));
chartPanel.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED));
//declare a pieplot so we can customize the chart
PiePlot3D plot = (PiePlot3D) chart.getPlot();
plot.setInsets(new RectangleInsets(-6.0, 5.0, 5.0, 5.0));
plot.setDirection(Rotation.CLOCKWISE);
plot.setIgnoreZeroValues(true);
plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0} {1} ({2})"));
plot.setDepthFactor(0.1);
plot.setCircular(true);
plot.setDarkerSides(true);
//create a timer for animation
rotate3DPieChart = new Timer(150, new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
//set the start angle, this increases everytime timer is executed
plot.setStartAngle(pieChartThreadIterator = pieChartThreadIterator + 0.6);
}
});
//south side
JPanel statisticsPanelSouth = new JPanel();
statisticsPanelSouth.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED));
JButton transactionsCount = new JButton("Count");
statisticsPanelSouth.add(transactionsCount);
transactionsCenterFinalPanel.add(chartPanel, BorderLayout.CENTER);
transactionsCenterFinalPanel.add(statisticsPanelSouth, BorderLayout.SOUTH);
transactions.add(transactionsCenterFinalPanel, BorderLayout.CENTER);
//start the timer (animation starts!)
rotate3DPieChart.start();
revalidate();
}
Hinweis: ein Diagramm für das Diagramm verwenden, dann setzen plot.setBackgroundPaint (Color.GRAY) tut nicht gut. Es ändert nur den Hintergrund innerhalb des Umrisses. Ich will, dass alles grau ist. Wie kann ich das machen ?
Es funktioniert völlig in Ordnung. Ich werde das stattdessen verwenden. Vielen Dank ! – miTzuliK
Noch eine Frage, wenn ich darf: Mit welcher Funktion haben Sie Dezimalzahlen der Zahl (84,67%) innerhalb von Etiketten angezeigt? – miTzuliK
@miTzuliK: Es sieht aus wie die verirrte Tooltip, aktiviert durch werkseitige Einstellung von 'tooltips' auf' true'; Hier ist das [Original] (http://stackoverflow.com/a/36889641/230513). – trashgod