#java #eclipse #javafx #linechart
#java #eclipse #javafx #линейная диаграмма
Вопрос:
Я пытаюсь добавить линейную диаграмму в свою сцену с помощью JavaFX, однако, когда я использую конструктор «новая линейная диаграмма (ось xAxis, ось чисел yAxis), данные не отображаются внутри диаграммы.
Мой код описан ниже: линейная диаграмма, определенная в файле fxml, который инициализируется в контроллере
@FXML private LineChart<String,Number> lineChart;
Инициализировал данные:
XYChart.Series<String,Number> series = new XYChart.Series<String,Number>();
series.getData().add(new XYChart.Data<String,Number>("Sample #1", 1);
series.getData().add(new XYChart.Data<String,Number>("Sample #2", 2);
добавлены данные в диаграмму:
lineChart.getData().add(series);
В этом случае это работает, но я не могу адаптировать yAxys к диапазону данных. В связи с этим я попытался сделать следующее:
final NumberAxis xAxis = new NumberAxis();
final NumberAxis yAxis = new NumberAxis();
lineChart= new LineChart<String,Number>(xAxis,yAxis);
lineChart.getData().add(series);
В этом случае диаграмма отображается, но данные не загружаются.
Не могли бы вы сказать мне, что с этим не так?
Спасибо
Комментарии:
1. Вы создаете новый
LineChart
: так что теперь у вас их два (тот, который создан в файле FXML, и тот, который вы создали в кодеnew LineChart<>(...)
). Отображается тот, который создан в файле FXML, но вы добавляете данные в другойLineChart
. Таким образом, вы не видите данные.2. Удалить
lineChart= new LineChart<String,Number>(xAxis,yAxis);
.3. Привет, Грег, спасибо за вашу помощь. Я понимаю проблему, я подумал, что это правильный способ присвоить оси X и Y диаграмме FXML. Мне нужно реализовать одно из этих решений, но сделать так, чтобы оси Y автоматически масштабировались до диапазона данных. Есть ли способ сделать это с линейной диаграммой FXML? Спасибо
4. Разве вы не определяете оси и в FXML? Просто введите их в контроллер так же, как вы это делаете
LineChart
, и вызовите любой метод, который вам нужен для их вызова.5. С моей стороны это было действительно нуби, теперь я это сделал. Действительно благодарю вас за вашу помощь. Желаю хорошего вечера