Lors de la définition de nouvelles données sur un PieChart existant, je remarque que les couleurs ne sont pas les mêmes. (Ils effectuent un cycle autour de la liste des couleurs CSS, comme si un compteur interne n'était pas réinitialisé)javafx 2.2 couleurs de graphique à secteurs ne réinitialisant pas
Comment recommencer les couleurs à la couleur 0, sans recréer le diagramme à chaque fois?
exemple:
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.chart.PieChart;
import javafx.stage.Stage;
public class ChartAdvancedPie extends Application {
PieChart pc = new PieChart();
private void init(Stage primaryStage) {
Group root = new Group();
primaryStage.setScene(new Scene(root));
root.getChildren().add(pc);
pc.setAnimated(false);
SetupData();
SetupData(); //comment this out to see first colours only
}
protected void SetupData() {
ObservableList<PieChart.Data> data = FXCollections.observableArrayList();
data.add(new PieChart.Data("Slice", 1));
data.add(new PieChart.Data("Slice", 2));
data.add(new PieChart.Data("Slice", 3));
pc.getData().clear();
pc.setData(data);
}
@Override public void start(Stage primaryStage) throws Exception {
init(primaryStage);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Un hack pour conserver l'ordre des couleurs est d'ajouter 8 - mod taille 8 autres articles avant d'effacer, mais je suis sûr qu'il ya un moyen plus facile (ou j'ajouter les données incorrect)
int rem = 8-(pieChartData.size() % 8);
for (int i=0; i< rem; i++) {
controller.FeatureChart.getData().add(new PieChart.Data("dummy", 1));
}
controller.FeatureChart.getData().clear();
//... add items again
Nice hack! J'ai le problème. Je pense que le JavaFX n'est pas encore assez mature pour que tous ces petits bugs soient gérés. – beardedlinuxgeek