JavaFX AreaChart area höhe wird nicht richtig dargestellt

xerxatin

Mitglied
Hallo liebe Community,

ich versuche mich gerade in JavaFX einzuarbeiten. Ich habe eine StackedAreaChart, welche nicht richtig dargestellt wird. Wie auf dem folgenden Bild zu sehen wird die Area oben abgeschnitten.

chart.JPG

Trotz intensiver Recherche bin ich auf keine Lösung gestoßen. Kann jemand helfen?

Der FXML-Code:
Code:
 <StackedAreaChart id="stockChart" fx:id="stockChart" createSymbols="false" legendVisible="false" prefHeight="292.0" prefWidth="644.0" title="DDA" verticalGridLinesVisible="false">
                            <xAxis>
                                <CategoryAxis side="BOTTOM" />
                            </xAxis>
                            <yAxis>
                                <NumberAxis side="LEFT" />
                            </yAxis>
                        </StackedAreaChart>

Der Java-Code:
Java:
 int stockCounter = 0;
        stockChart.getXAxis().setLabel("Zeit (12 Monate)");
        stockChart.getYAxis().setLabel("Wert");

        XYChart.Series<String, Double> chart1Series = new XYChart.Series<>();

        Calendar today = CalendarUtility.getLastWorkday();
        Calendar aYearAgo = CalendarUtility.getAYearAgo();

        List<DataPoint> dataChart1 = StockValue.getStockDataPointsForPeriod("DAX", aYearAgo, today, StockValue.ACCURACY_MONTH);
    
        if (dataChart1 != null) {
            //Die werte der Wertein die Series schreiben
            for (DataPoint dataPoint : dataChart1) {
                chart1Series.getData().add(new XYChart.Data(dataPoint.getDateString(), dataPoint.getValue()));
            }
        } else {
            System.out.println("++++++++dataChart1 == NULL +++++++");
        }

        chart1Series.setName("DAX");

        //Maus-Cursor für Charts ändern
        stockChart.setCursor(Cursor.CROSSHAIR);

        stockChart.getData().add(chart1Series);

        //Symbole (hier: Kreis) werden auf den Schneidepunkten der X- und Y-
        //Koordinaten der Daten angezeigt.
        stockChart.setCreateSymbols(true);
 
Vielleicht mußt du der Komponente sagen, daß sie maximal wachsen soll. Dazu muß man (z.B. in der FXML-Datei) die "maxWidth/Height"-Parameter übergeben (an diesem Beispiel nicht getestet, funktioniert aber normalerweise):
Code:
<StackedAreaChart id="stockChart" fx:id="stockChart" createSymbols="false" legendVisible="false" prefHeight="292.0" prefWidth="644.0" maxHeight="1.7976931348623157E308" title="DDA" verticalGridLinesVisible="false">
Dieser Wert ("1.7976931348623157E308") entspricht nämlich der Konstante "Double.MAX_VALUE" und er bewirkt, daß eine Komponente allen verfügbaren Platz nutzt.
Um das ganze graphisch zu gestalten ("WYSIWYG"), kann man auch Scenebuilder benutzen.

Gruß, Schmetterhand
 
Ich glaube, es ginge auch "Infinite", bzw. "-Infinite". Aber mich würde eher der Rest des FXML interessieren...
 

Zurück
Oben