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.

Foi útil?

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

}
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top