如何设置ControlFX Popover组件的高度和宽度
How to set height and width of ControlFX Popover component
我正在使用 ControlFx 的 Popover 来显示验证消息。我无法为弹出窗口设置所需的高度、宽度和样式。下面是我正在使用的代码。
PopOver popOver = new PopOver();
Label messageLable = new Label();
messageLable.setFont(Font.font(12));
messageLable.setMinHeight(15);
messageLable.setMaxHeight(15);
messageLable.setMinWidth(40);
messageLable.setText("Appropriate validation message ");
popOver.setContentNode(messageLable);
popOver.arrowSizeProperty().bind(new SimpleDoubleProperty(12));
popOver.arrowIndentProperty().bind(new SimpleDoubleProperty(12));
popOver.arrowLocationProperty().bind(new SimpleObjectProperty<>(ArrowLocation.LEFT_TOP));
popOver.cornerRadiusProperty().bind(new SimpleDoubleProperty(5));
popOver.hide(Duration.seconds(4));
popOver.setDetachable(Boolean.FALSE);
popOver.setStyle("-fx-background-color: rgb(255,0,255);");
编辑 1:
我可以从 CSS 设置样式(背景颜色等)。参考 Styling JavaFX Popover 的答案。
但我仍然无法设置所需的高度和宽度
我无法减小宽度和高度,因为 PopOverSkin class 使用箭头大小 属性、圆角半径 属性 和箭头缩进 属性。
以下是 class PopOverSkin 的摘录。
/*
* The min width and height equal 2 * corner radius + 2 * arrow indent +
* 2 * arrow size.
*/
stackPane.minWidthProperty().bind(
Bindings.add(Bindings.multiply(2, popOver.arrowSizeProperty()),
Bindings.add(
Bindings.multiply(2,
popOver.cornerRadiusProperty()),
Bindings.multiply(2,
popOver.arrowIndentProperty()))));
减小箭头大小、圆角半径和箭头缩进相应地改变了弹出框的高度和宽度
我正在使用 ControlFx 的 Popover 来显示验证消息。我无法为弹出窗口设置所需的高度、宽度和样式。下面是我正在使用的代码。
PopOver popOver = new PopOver();
Label messageLable = new Label();
messageLable.setFont(Font.font(12));
messageLable.setMinHeight(15);
messageLable.setMaxHeight(15);
messageLable.setMinWidth(40);
messageLable.setText("Appropriate validation message ");
popOver.setContentNode(messageLable);
popOver.arrowSizeProperty().bind(new SimpleDoubleProperty(12));
popOver.arrowIndentProperty().bind(new SimpleDoubleProperty(12));
popOver.arrowLocationProperty().bind(new SimpleObjectProperty<>(ArrowLocation.LEFT_TOP));
popOver.cornerRadiusProperty().bind(new SimpleDoubleProperty(5));
popOver.hide(Duration.seconds(4));
popOver.setDetachable(Boolean.FALSE);
popOver.setStyle("-fx-background-color: rgb(255,0,255);");
编辑 1:
我可以从 CSS 设置样式(背景颜色等)。参考 Styling JavaFX Popover 的答案。 但我仍然无法设置所需的高度和宽度
我无法减小宽度和高度,因为 PopOverSkin class 使用箭头大小 属性、圆角半径 属性 和箭头缩进 属性。 以下是 class PopOverSkin 的摘录。
/*
* The min width and height equal 2 * corner radius + 2 * arrow indent +
* 2 * arrow size.
*/
stackPane.minWidthProperty().bind(
Bindings.add(Bindings.multiply(2, popOver.arrowSizeProperty()),
Bindings.add(
Bindings.multiply(2,
popOver.cornerRadiusProperty()),
Bindings.multiply(2,
popOver.arrowIndentProperty()))));
减小箭头大小、圆角半径和箭头缩进相应地改变了弹出框的高度和宽度