Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8127196

BorderPane right element ignoring preferred height (and also width), regression?

    Details

      Description

      See code below.

      I'm putting a VBox on the right side of a BorderPane. In JavaFX 2.0, this VBox would be sized as small as possible (both width and height), however, in JavaFX 2.1, two potential issues are causing the VBox to be maxed in both the width and height.

      First, the Preferred Height of the VBox apparently is ignored, despite the docs for BorderPane saying that it will use the preferred height. This results in the VBox taking up max height, while in 2.0 it was taking up only a fraction of that.

      Secondly, when giving any of the labels inside the VBox "setWrapText(true)", the entire VBox becomes maximized in the horizontal direction. I would prefer it would use the setMaxWidth of the label with setWrapText(true) and then wrap lines accordingly.

      The test code below:

      import javafx.application.Application;
      import javafx.geometry.Pos;
      import javafx.scene.Scene;
      import javafx.scene.control.Label;
      import javafx.scene.control.ProgressIndicator;
      import javafx.scene.layout.BorderPane;
      import javafx.scene.layout.HBox;
      import javafx.scene.layout.StackPane;
      import javafx.scene.layout.VBox;
      import javafx.stage.Stage;

      public class BorderPaneTest extends Application {
        public static void main(String[] args) {
          Application.launch(args);
        }

        @Override
        public void start(Stage stage) throws Exception {
          BorderPane borderPane = new BorderPane();

          Scene scene = new Scene(borderPane);

          VBox vBox = new VBox() {{
            setPrefHeight(500);
            setStyle(" -fx-background-color: rgba(0,0,0,0.5); -fx-background-radius: 0 0 0 15; ");
            getChildren().add(new StackPane() {{
              getChildren().add(new VBox() {{
                getChildren().add(new HBox() {{
                  setAlignment(Pos.CENTER_LEFT);
                  getChildren().add(new ProgressIndicator() {{
                    setProgress(0.5);
                  }});
                  getChildren().add(new Label() {{
                    setText("My Title");
                  }});
                }});
                getChildren().add(new Label() {{
                  setText("My Somewhat longer description");
      // setWrapText(true);
                  setMaxWidth(400);
                }});
              }});
            }});
          }};

          borderPane.setRight(vBox);

          stage.setScene(scene);
          stage.setFullScreen(true);
          stage.show();

          System.out.println(vBox.getPrefHeight());
        }
      }

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                ekrejcir Eva Krejčířová (Inactive)
                Reporter:
                jhendrikx John Hendrikx
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Imported: