Domanda

Sto avendo problemi a utilizzare alcuni degli esempi JAVAFX da Oracle poiché le "scene" non vengono create con il costruttore di scena in modo che il codice differisca da ciò che voglio usarlo per.

Sto cercando di creare un layout con SceneSbuilder che contiene un grafico a torta.Ho impostato il FXID del grafico a "MyPiechart" con il corrispondente @FXML private Chart myPieChart; all'inizio del mio codice.

Ho anche aggiunto il seguente codice che viene eseguito sull'inizializzazione che pensavo avrebbe avuto crollato il grafico: -

    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);
.

Tutti i valori vengono inseriti in un elenco osservabile e quindi il grafico a torta viene istanziato con il valore ossevidablelist.

Purtroppo il mio grafico a torta non è mostrato .... cosa mi mancano ragazzi?

Cheers per qualsiasi aiuto.

È stato utile?

Soluzione

Non creare un nuovo Piechart.

Il processo di caricamento FXML creerà un'istanza grafico per te e inserirla come figlio del riquadro Layout definito FXML.L'annotazione @FXML inietterà un riferimento al grafico nel tuo controller.

Tutto quello che devi fare nell'inizializzazione del tuo controller è popolare il grafico esistente con i tuoi dati.Puoi farlo chiamando SetData su MyPiechart.

Altri suggerimenti

Puoi fare in questo modo semplicemente impostando l'ID in FXML per il tuo grafico

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);

}
}
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top