【问题标题】:JavaFX - Odd behavior from GridPane with DatePickerJavaFX - 带有 DatePicker 的 GridPane 的奇怪行为
【发布时间】:2015-09-17 23:56:01
【问题描述】:

在包含 DatePickers 时,GridPane 的大小似乎不正确。任何人都知道发生了什么或潜在的解决方法?我已经尝试了许多其他节点(CheckBox、ChoiceBox 等),而 DatePicker 似乎是唯一导致这种行为的节点。想法?

编辑:ColorPicker 和 ComboBox 似乎都很好,尽管也像 DatePicker 那样扩展了 ComboBoxBase。

@Override
public void start(Stage primaryStage) {
  HBox goodBox = new HBox();
  goodBox.setStyle("-fx-border-color: green");
  goodBox.setPadding(new Insets(5));
  GridPane goodGrid = new GridPane();
  goodGrid.setHgap(5);
  goodGrid.setVgap(5);
  goodGrid.addColumn(0, new Label("Good 1:"), new Label("Good 2:"));
  goodGrid.addColumn(1, new TextField(), new TextField());
  goodBox.getChildren().add(goodGrid);

  HBox badBox = new HBox();
  badBox.setStyle("-fx-border-color: red");
  badBox.setPadding(new Insets(5));
  GridPane badGrid = new GridPane();
  badGrid.setHgap(5);
  badGrid.setVgap(5);
  badGrid.addColumn(0, new Label("Bad 2:"), new Label("Bad 2:"));
  badGrid.addColumn(1, new DatePicker(), new DatePicker());
  badBox.getChildren().add(badGrid);

  VBox root = new VBox(5);
  root.setAlignment(Pos.TOP_LEFT);
  root.setPadding(new Insets(5));
  root.getChildren().addAll(goodBox, badBox);

  Scene scene = new Scene(root);
  primaryStage.setScene(scene);
  primaryStage.show();
}

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

【问题讨论】:

    标签: java layout javafx datepicker gridpane


    【解决方案1】:

    在设置场景和显示舞台时添加以下内容似乎可行:

    Scene scene = new Scene(root);
    primaryStage.setScene(scene);
    root.applyCss();
    root.layout();
    primaryStage.show();
    

    我很想知道为什么这是必要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-30
      • 2022-01-15
      • 1970-01-01
      相关资源
      最近更新 更多