Javafx круговая диаграмма, созданная со сценой построителя, не отображает данные

StackOverflow https://stackoverflow.com//questions/12673873

Вопрос

У меня проблемы с использованием некоторых примеров JavafX из Oracle, поскольку «сцены» не создаются со сценой построителя, поэтому код отличается от того, что я хочу использовать его для.

Я пытаюсь создать макет со cenceBuilder, который удерживает круговую диаграмму.Я установил FXID диаграммы на «MyPieChart» с соответствующим @FXML private Chart myPieChart; в начале моего кода.

Я также добавил следующий код, который выполняется по инициализации, который я подумал, будет навязывать график: -

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

Все значения вводятся в наблюдаемый список, а затем круговая диаграмма создается значением obsevableList.

К сожалению, моя круговая диаграмма не показывает .... Что я скучаю по парням?

ура за любую помощь.

Это было полезно?

Решение

Не создавайте новый piechart.

Процесс загрузки FXML создаст экземпляр диаграмма для вас и вставит его в виде ребенка FXML-определяемой панели макета.Аннотация @fxml введет ссылку на диаграмму в вашем контроллере.

Все, что вам нужно сделать в инициализаторе вашего контроллера, заполняется существующим диаграммой с вашими данными.Вы можете сделать это, вызывая setdata на mypiechart.

Другие советы

Вы можете поделать это, просто установив идентификатор в FXML для вашей графика

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

}
}
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top