Создайте привлекательный BarChart с помощью JavaFx и Slider для просмотра из-за данных категории так долго - PullRequest
1 голос
/ 28 сентября 2019

Я пытаюсь сделать гистограмму с помощью Javafx.Однако это довольно мало, чтобы увидеть это.enter image description here

Я хочу сделать его более привлекательным, как

enter image description here

Вот программа кода

 public class Main extends Application {

 public static void main(String[] args) {
  launch(args);
 }

  @Override
  public void start(Stage stage) throws Exception {
  stage.setTitle("JavaFX Chart Demo");
  StackPane pane = new StackPane();
  pane.getChildren().add(createBarChart());
  stage.setScene(new Scene(pane, 400, 200));
  stage.show();
 }

 public ObservableList<XYChart.Series<String, Double>>
     getDummyChartData() {
  ObservableList<XYChart.Series<String, Double>> data =
     FXCollections.observableArrayList();
  Series<String, Double> as = new Series<>();
  Series<String, Double> bs = new Series<>();
  Series<String, Double> cs = new Series<>();
  Series<String, Double> ds = new Series<>();
  Series<String, Double> es = new Series<>();
  Series<String, Double> fs = new Series<>();
  as.setName("A-Series");
  bs.setName("B-Series");
  cs.setName("C-Series");
  ds.setName("D-Series");
  es.setName("E-Series");
  fs.setName("F-Series");

  Random r = new Random();

  for (int i = 1900; i < 2017; i += 10) {

     as.getData().add(new XYChart.Data<>
     (Integer.toString(i), r.nextDouble()));
     bs.getData().add(new XYChart.Data<>
     (Integer.toString(i), r.nextDouble()));
     cs.getData().add(new XYChart.Data<>
     (Integer.toString(i), r.nextDouble()));
     ds.getData().add(new XYChart.Data<>
     (Integer.toString(i), r.nextDouble()));
     es.getData().add(new XYChart.Data<>
     (Integer.toString(i), r.nextDouble()));
     fs.getData().add(new XYChart.Data<>
     (Integer.toString(i), r.nextDouble()));
  }
  data.addAll(as, bs, cs, ds, es, fs);
  return data;
 }

 public XYChart<CategoryAxis, NumberAxis>
     createBarChart() {
  CategoryAxis xAxis = new CategoryAxis();
  NumberAxis yAxis = new NumberAxis();
  BarChart bc = new BarChart<>(xAxis, yAxis);
  bc.setData(getDummyChartData());
  bc.setTitle("Bar Chart on Random Number");
  return bc;
 }
 }

Пожалуйста, помогите мне, как получить его по Javafx.Я обнаружил, что это можно решить с помощью JFree Chart. Однако я не знаю, как это сделать с помощью BarChart javafX.Это действительно вызов для меня сегодня.Спасибо

1 Ответ

0 голосов
/ 28 сентября 2019

Просто сделайте диаграмму в области прокрутки.

public void start(Stage stage) throws Exception {
    stage.setTitle("JavaFX Chart Demo");
    StackPane stackPane = new StackPane();
    stackPane.setPrefSize(1000, 200);
    stackPane.getChildren().add(createBarChart());
    ScrollPane scrollPane = new ScrollPane();
    scrollPane.setPrefSize(400, 220);
    scrollPane.setContent(stackPane);
    stage.setScene(new Scene(scrollPane));
    stage.show();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...