Javafx круговая диаграмма, созданная со сценой построителя, не отображает данные
Вопрос
У меня проблемы с использованием некоторых примеров 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);
}
}
.