Javafx Grã criado com a cena builder não dispaly de dados
Pergunta
Estou tendo problemas com algum de o Javafx exemplos da Oracle, como o 'cenas' não são criadas com a Cena Construtor de então, o código é diferente do que eu quiser usá-lo para.
Estou tentando criar um layout com scenebuilder que contém um Gráfico de Pizza.Eu tenho definir o fxid do gráfico para 'myPieChart' com o correspondente @FXML private Chart myPieChart;
no início do meu código.
Eu também adicionamos o seguinte código que é executado na inicialização do que eu pensei que teria criado o gráfico:-
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);
Todos os valores estão a ser postos em uma observáveis lista e, em seguida, o Gráfico de Pizza é instanciado com o ObsevableList valor.
Infelizmente o meu gráfico de pizza não está mostrando....o que estou ausente caras?
Felicidades para qualquer ajuda.
Solução
Não crie um novo gráfico de sectores.
O FXML processo de carregamento irá criar um gráfico de exemplo para você e inseri-lo como um filho do FXML definido pelo Painel de esquema.O @FXML anotação vai injetar uma referência para o gráfico em seu Controlador.
Tudo que você precisa fazer no seu Controlador de inicializador é preencher o gráfico existente com os seus dados.Você pode fazer isso chamando setData no myPieChart.
Outras dicas
Você pode fazer isto por apenas definir o id de fxml para o gráfico
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);
}
}