当前位置: 首页 > 知识库问答 >
问题:

usrpagestage.initStyle(StageStyle.UTILITY)不能完全显示内容

冉子石
2023-03-14

我试图设计一个弹出窗口。我设计了它,它的工作原理,但有一个小问题。这是弹出窗口代码的一部分:

public class Warning extends BorderPane {

public Warning() {

    setCenter(addVBox2());

}

private VBox addVBox2() {

    VBox vbox = new VBox();
    vbox.setPadding(new Insets(15,10,15,10));
    vbox.setSpacing(10);

    Label l1 = new Label("WARNING");
    l1.setFont(Font.font("Calibri", FontWeight.BOLD, 20));
    l1.setTextFill(Color.BLACK);
    l1.setUnderline(true);

    Label l2 = new Label("Try other User Name..!");
    l2.setFont(Font.font("Calibri", FontWeight.BOLD, 18));
    l2.setTextFill(Color.RED);

    vbox.getChildren().addAll(l1, l2);
    return vbox;
}

这就是我所说的:

            setEffect(new BoxBlur(5, 10, 10));
            Stage usrpagestage = new Stage();
            usrpagestage.setMaxHeight(100);
            usrpagestage.setMaxWidth(300);
            usrpagestage.initStyle(StageStyle.UTILITY);
            usrpagestage.setScene(new Scene(new Warning()));
            usrpagestage.show();

            usrpagestage.setOnCloseRequest(new EventHandler<WindowEvent>() {
                @Override
                public void handle(WindowEvent t) {
                    setEffect(new BoxBlur(0, 0, 0));

                }
            });

弹出窗口在应该工作的时候工作。但是其中的内容没有完全显示。这是屏幕截图:

如何解决这个问题?

共有1个答案

赫连法
2023-03-14

拆下两条线:

usrpagestage.setMaxHeight(100);
usrpagestage.setMaxWidth(300);

之后,舞台将恢复其默认行为,自动调整大小以适应初始场景内容。

不,它不起作用。

是的,它根本不起作用:-)

它应该是有效的(让舞台自动调整应该是正确的解决方案)。

由于JavaFX布局库中的错误,它无法工作:

  • RT-31665 未正确计算具有样式实用程序的载物台的大小。

您可以通过手动调用stage.sizeToScene()来解决该错误。

示例代码

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.scene.text.*;
import javafx.scene.web.WebView;
import javafx.stage.*;

public class WarningSample extends Application {
    @Override public void start(Stage stage) throws Exception {
        final WebView view = new WebView();
        view.getEngine().load("http://www.google.com");
        stage.setScene(new Scene(view));
        stage.show();

        Stage warningStage = new Stage();
        warningStage.initStyle(StageStyle.UTILITY);
        warningStage.setScene(new Scene(new Warning()));

        // this workaround allows the stage to be sized correctly.
        warningStage.sizeToScene();

        warningStage.show();
    }

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

    private class Warning extends VBox {
        public Warning() {
            setPadding(new Insets(15, 10, 15, 10));
            setSpacing(10);

            Label heading = new Label("WARNING");
            heading.setFont(Font.font("Calibri", FontWeight.BOLD, 20));
            heading.setTextFill(Color.BLACK);
            heading.setUnderline(true);

            Label body = new Label("Try other User Name..!");
            body.setFont(Font.font("Calibri", FontWeight.BOLD, 18));
            body.setTextFill(Color.RED);

            getChildren().addAll(heading, body);
        }
    }
}
 类似资料:
  • 我一直在为一个即将到来的项目使用JFreeChart进行实验,看着教程,它们似乎非常直截了当。我创建了一个简单的小程序,它要求一些数据并显示一个3D饼图。它可以工作,但当在面板中显示图表时,它只显示部分图表。如果单击面板内部,它将增长到显示面板的大小。我尝试在不同的地方设置不同的setPreferredSize(),但似乎都不起作用。我错过了什么?

  • 本文向大家介绍C#中label内容显示不全、不完整的解决方法,包括了C#中label内容显示不全、不完整的解决方法的使用技巧和注意事项,需要的朋友参考一下 c# label的内容显示不全,需要设置如下属性即可: 1、将Lable的font属性的字体改成宋体; 2、将AutoSize属性改成true;

  • 有人能解释这种行为以及如何修复它吗? 我为此使用的完整xml代码:

  • 我正在用Java FX开发应用程序。在这个特定的窗口中,我使用了BorderPane。当按下按钮时,下面提供的代码应该显示在BorderPane的中心区域。 代码正在运行。按下按钮时,代码中的详细信息将显示在中心区域。但问题是两个标签内容都没有完全显示。我将提供一个屏幕截图。 那么,为什么标签的内容没有完全显示?如何使其完全可见?

  • 要求图片等比例完整显示不裁剪不留白, 图片比例固定是16/3 使用object-fit: contain; 图片两边有空白 使用object-fit: cover; 图片显示不全,被裁剪了 原图

  • 我有一个自定义背景编辑文本。当他们的键盘打开-屏幕调整显示集中编辑文本,问题是,它削减了我的自定义背景。 什么是最好的方式显示我的编辑文本包括他的敲击白背景时,键盘打开? 我的清单现在是调整设置。