Ich versuche, einen JFreeChart
Untertitel zu einem zentrierten Titel so ausgerichtet, dass der Haupttitel in der ChartFrame
zentriert ist, aber der Untertitel ausgerichtet ist am linken Rand des Titels. Die einzige Möglichkeit, dies zu tun, war, den Titel und den Untertitel auf HorizontalAlignment.LEFT
zu setzen. Dann würde ich das Programm so einstellen, dass das linke Padding des Titels so eingestellt wird, dass es zentriert ist, und dann den Untertitel-Padding so einstellen, dass er dem des Titels entspricht, wodurch er auf den gleichen linken Rand ausgerichtet wird Titel bis zur Mitte des Rahmens wie folgt aus:JFreeChart chart.getWidth() funktioniert nicht beim Versuch, Untertitel auf zentrierten Titel zu richten
// Make the chart
JFreeChart chart = ChartFactory.createTimeSeriesChart(title, "Time (Hour)", "Vehicles Parked", dataset, true, true, false);
ChartFrame frame = new ChartFrame("Chart", chart);
frame.pack();
frame.setVisible(true);
chart.getTitle().setHorizontalAlignment(HorizontalAlignment.LEFT);
chart.getTitle().setPadding(0, (frame.getWidth()/2)-(chart.getTitle().getWidth()/2), 0, 0);
TextTitle subtitle1 = new TextTitle(
"This is a test subtitle in which I would like\nthe subtitle to be lined up to the title", // text
chart.getTitle().getFont().deriveFont(chart.getTitle().getFont().getSize() * 0.6f), // font (shrunk title)
chart.getTitle().getPaint(), // paint
RectangleEdge.TOP, // position
HorizontalAlignment.LEFT, //chart2.getTitle().DEFAULT_HORIZONTAL_ALIGNMENT, // horizontal alignment
VerticalAlignment.BOTTOM, // vertical alignment
chart.getTitle().getPadding() // padding
);
chart.addSubtitle(subtitle1);
Bei dem Versuch, dies zu tun, die chart.getTitle().getWidth()
Methode zurückkehrt 0.0
jedes Mal, und ich kann nicht herausfinden, warum. Ich habe versucht, chart.getTitle()
zu einem AbstractBlock
zu werfen, aber das macht keinen Unterschied. Ich glaube, es hat etwas mit der Tatsache zu tun, dass in der JavaDoc for the getWidth()
method in the AbstractBlock
class, erwähnt es wird die Breite zurückgeben, wenn es im Voraus weiß, was es anscheinend nicht tut.
Ich möchte wissen, wie man den Diagrammtitel erhält, um seine Breite korrekt zurückzugeben, ob mit der getWidth()
Funktion oder nicht. Ich würde auch gerne wissen, ob es eine bessere Möglichkeit gibt, Elemente eines Diagramms im Gegensatz zu den Seiten des ChartFrame
aneinander auszurichten, anstatt ihre Auffüllung anzupassen.
Kreuz geschrieben here.
Cross-gepostet [hier] (http://www.jfree.org/forum/viewtopic.php?f=3&t=117630). – trashgod