Question

J'ai du mal à utiliser certains exemples Javafx d'Oracle car les « scènes » ne sont pas créées avec Scene Builder, le code diffère donc de ce pour quoi je souhaite l'utiliser.

J'essaie de créer une mise en page avec SceneBuilder contenant un diagramme circulaire.J'ai défini le fxid du graphique sur 'myPieChart' avec le correspondant @FXML private Chart myPieChart; au début de mon code.

J'ai également ajouté le code suivant qui est exécuté lors de l'initialisation et qui, je pensais, aurait créé le graphique : -

    ObservableList<PieChart.Data> pieChartData = FXCollections.observableArrayList(
            new PieChart.Data("Grapefruit", 13),
            new PieChart.Data("Oranges", 25),
            new PieChart.Data("Plums", 10),
            new PieChart.Data("Pears", 22),
            new PieChart.Data("Apples", 30));


    PieChart myPieChart = new PieChart(pieChartData);

Toutes les valeurs sont placées dans une liste observable, puis le diagramme circulaire est instancié avec la valeur ObsevableList.

Malheureusement, mon diagramme circulaire ne s'affiche pas... qu'est-ce qui me manque, les gars ?

Bravo pour toute aide.

Était-ce utile?

La solution

Ne créez pas de nouveau PieChart.

Le processus de chargement FXML créera une instance de graphique pour vous et l'insérera en tant qu'enfant du volet de présentation défini par FXML.L'annotation @FXML injectera une référence au graphique dans votre contrôleur.

Tout ce que vous avez à faire dans l'initialiseur de votre contrôleur est de remplir le graphique existant avec vos données.Vous pouvez le faire en appelant setData sur monPieChart.

Autres conseils

Vous pouvez faire comme ça en définissant simplement l'identifiant dans fxml pour votre graphique

public class GraphScreenController implements Initializable {

    @FXML
    PieChart chart;

@Override
public void initialize(URL url, ResourceBundle rb) {
    // TODO
 ObservableList<PieChart.Data> pieChartData =
            FXCollections.observableArrayList(
            new PieChart.Data("Executed", 60),
            new PieChart.Data("Passed", 25),
            new PieChart.Data("Fails", 15));

 chart.setData(pieChartData);

}
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top