Barchart Verschiebt sich

JavaFX und die Programmierung

Moderator: wegus

Antworten
Mitch
Beiträge: 79
Registriert: 02.03.2010, 12:39

Barchart Verschiebt sich

Beitrag von Mitch » 05.05.2010, 18:20

Hi, hoffe auf eine Antwort
ich sitze nun seit mehreren und finde den Fehler nicht.
Ich habe eine Barchart Programmiert. Diese Enthält nur eine Bar die aber per binding sich alle zwei sekunden ändert. der Anfangswert ist bei 0, also man sieht keine Bar.
Wenn nun nach diesen 2sekunden der Wert sich änder und eine Bar sichtbar wird springt meine Chart ein Stück nach links oben und die Einhaeiten der Y-Achse sind nichtmehr Vollständig lesbar. Woran kann das Liegen?!? Hier mal der Code der Chart:

Code: Alles auswählen

public function consumptionChart(color: Color, units: String, zaehler: String, lowerbound: Integer, upperbound: Integer, tickunit: Number, data: Number): VBox {
        barchart = VBox {
            translateX: Values.zaehlerinfo_spacing
            content: [
                //Barchart
                BarChart {
                    cache: true
                    //Vorgabe der Grösse
                    layoutInfo: LayoutInfo { width: (Values.overview_width * 0.45 - Values.zaehlerinfo_spacing * 6) height: Values.overview_height * 0.75 - Values.zaehlerinfo_spacing * 4 }
                    translateY: Values.zaehlerinfo_spacing * 2
                    //Variable für die Daten der Barchart
                    var values = [BarChart.Data {
                                    value: bind chartData
                                    category: bind chartData.toString()
                                }
                            ];
                    //Daten der Barchart
                    data: [
                        BarChart.Series {
                            name: bind zaehler
                            data: bind values
                            fill: color
                        }
                    ]
                    //X-Achsen Beschriftung
                    categoryAxis: CategoryAxis {
                        categories: bind for (value in values) value.category
                    }
                    valueAxis: NumberAxis {
                        lowerBound: lowerbound
                        upperBound: upperbound
                        tickUnit: tickunit
                        label: units
                    }
                }
            ]
        }
    }
MfG

Mitch
Beiträge: 79
Registriert: 02.03.2010, 12:39

Re: Barchart Verschiebt sich

Beitrag von Mitch » 07.05.2010, 11:16

Hat niemenad ne Idee ich verzweile dran. Hab schon alle probiert was mir eingefallen ist.
Vielleicht muss ich ja mit dem barCreator Arbeiten ?!? nur finde ich dazu keine beschreibung wie man diesen nutzt.
Hab nun auch die barchart als solche in eine Einzelne Datei geschrieben und mit einer anderen Timeline das ganze getestet.
Vielleicht kann das ja jemand auch ausprobieren und findet ne lösung.

Wär echt super da ich das bis Montag gelöst haben muss.

Code: Alles auswählen

/*
 * NewJavaFXEmpty.fx
 *
 * Created on 30.04.2010, 10:28:09
 */
package DA;
import javafx.scene.chart.BarChart;
import javafx.scene.chart.part.CategoryAxis;
import javafx.scene.chart.part.NumberAxis;
import javafx.scene.layout.LayoutInfo;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.scene.layout.HBox;

var chartData:Number;

public function consumptionChart(color: Color, units: String, zaehler: String, lowerbound: Integer, upperbound: Integer, tickunit: Number, data: Number) {
        HBox {
            content: [


        VBox {
            translateX: 20
            translateY:20
            content: [
                //Barchart
                BarChart {
                    cache: true
                    //Vorgabe der Grösse
                    layoutInfo: LayoutInfo { width: 300 height: 500}
                    
                    //Variable für die Daten der Barchart
                    var values = [BarChart.Data {
                                    value: bind progress
                                    category: bind data.toString()
                                }
                            ];
                            
                    //Daten der Barchart
                    data: [
                        BarChart.Series {
                            name: bind zaehler
                            data: bind values
                            fill: color
                        }
                    ]
                    //X-Achsen Beschriftung
                    categoryAxis: CategoryAxis {
                        categories: bind for (value in values) value.category
                    }
                    valueAxis: NumberAxis {
                        lowerBound: lowerbound
                        upperBound: upperbound
                        tickUnit: tickunit
                        label: units
                    }
                }
            ]
        }
        ]
        }
    }

 public var progress: Number;
public var timeline: Timeline = Timeline {
            keyFrames: [
                KeyFrame { time: 0s values: progress => 0 },
                KeyFrame { time: 2s values: progress => 0 },
                KeyFrame { time: 6s values: progress => 200 },
            ]
            autoReverse: true
            repeatCount: Timeline.INDEFINITE
        }
public function run() {
    timeline.playFromStart();;
    consumptionChart(Color.BLUE, "kW", "Hugo", 0, 200, 20, 9)
}

MfG
Thomas

Antworten