如何使用JavaFX和Scene Builder修复或设置GridPane行高和列宽的标签高度和宽度?

时间:2016-08-03 05:47:26

标签: java javafx javafx-2 javafx-8 scenebuilder

如何根据Label行高和列宽设置GridPane的高度和宽度?

请查看我的下图

此图像是最小化屏幕 this one is my minimized screen image

这个是最大化的屏幕 This one is my maximized screen image

此图片是我的标签布局属性
This are my label layout properties

我想针对Label行高和列宽调整GridPane的大小。

通过代码我正在设置标签的背景颜色,如下所示。

if(cmnd1.WIM.equals("Y")){
   javafx.application.Platform.runLater( new Runnable() {
        @Override
        public void run() {
            lsduController1.oneWIM.setGraphic(new ImageView(new Image("/images/Wim_T.png")));
            lsduController1.oneWIM.setStyle("-fx-background-color: none;");
        }
   });
} else {
    javafx.application.Platform.runLater( new Runnable() {
        @Override
        public void run() {
            lsduController1.oneWIM.setGraphic(new ImageView(new Image("/images/Wim_F.png")));
            lsduController1.oneWIM.setStyle("-fx-background-color: Red;");
        }
    });
}

1 个答案:

答案 0 :(得分:0)

此处的问题是将maxSizeUSE_COMPUTED_SIZE设置为MAX_VALUE

使用<Label style="-fx-background-color: red;" text="Label"> <maxHeight> <Double fx:constant="MAX_VALUE"/> </maxHeight> <maxWidth> <Double fx:constant="MAX_VALUE"/> </maxWidth> </Label> 代替

ImageView

(这也应该从SceneBuilder的下拉列表中获得。)

要调整fitWidth的大小,请将fitHeightImageView imageView = new ImageView(new Image("/images/Wim_F.png")); imageView.setPreserveRatio(true); imageView.fitWidthProperty().bind(lsduController1.oneWIM.widthProperty().subtract(10d)); imageView.fitHeightProperty().bind(lsduController1.oneWIM.heightProperty().subtract(10d)); lsduController1.oneWIM.setGraphic(imageView); 属性绑定到标签大小。 E.g:

{{1}}