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

在两个不同大小的屏幕上运行应用程序时,JavaFX窗口大小调整

何海
2023-03-14

然而,当我尝试在具有更大屏幕的工作站上运行时,JavaFX应用程序不会调整自身大小,并显示在屏幕的左上方当笔记本电脑/工作站屏幕大小不同时,我可以调整应用程序窗口的大小?

共有2个答案

蓬高谊
2023-03-14

你可以设定一个比率。确定您想要的高宽比。然后获得屏幕的宽度和高度,并应用该比率。

import javafx.application.Application;
import javafx.geometry.Rectangle2D;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Screen;
import javafx.stage.Stage;

/**
 *
 * @author blj0011
 */
public class JavaFXApplication287 extends Application
{

    @Override
    public void start(Stage primaryStage)
    {
        double heightRatio = .25;
        double widthRatio = .30;

        Rectangle2D primaryScreenBounds = Screen.getPrimary().getVisualBounds();

        double sceneHeight = primaryScreenBounds.getHeight() * heightRatio;
        double sceneWidth = primaryScreenBounds.getWidth() * widthRatio;

        StackPane root = new StackPane();
        Scene scene = new Scene(root, sceneWidth, sceneHeight);

        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args)
    {
        launch(args);
    }

}
慕阳
2023-03-14

启动JavaFX应用程序时,可以使用最大化Stage窗口。设置最大化(真)。这将使它“填充屏幕”,无论屏幕大小如何。如果你这样做的话,一定要使用一个能很好地调整屏幕大小的布局。

要获取阶段,可以调用。在场景中获取window(),并将其投射到舞台上。下面是一个使用我在应用程序中有权访问的节点的示例:

((阶段)节点。getScene()。getWindow())。设置最大化(真)

 类似资料:
  • 我正在尝试构建一个包含6个窗格(作为父级添加到GridPane布局中)的简单Java项目。我必须在开始时设置窗口大小,并通过参考根布局的宽度和高度,设法将它们均匀地拆分。 但我想要他们调整大小,因为我改变了窗口的大小(使用鼠标,现在他们得到固定的大小)。 下面是我的代码:

  • 我使用的是最新版本的Java(FX)、macOS和IntelliJ IDEA CE的Mac电脑。问题是,当我调整JavaFX窗口的大小时,我的Mac会立即崩溃。只有当我按下电源按钮5秒钟后,MacBook才会重新启动。我创建了一个普通IntelliJ JavaFX项目,其中包含以下自动创建的文件: Hello控制器。java 我没有改变任何事情,开始了这个项目。一切正常,直到你尝试调整窗口大小,M

  • 我正在尝试以编程方式添加ImageView,但不要在不同的屏幕上制作相同的大小。我尝试了许多比例代码,但没有任何好的结果。 屏幕:屏幕图像 这是我的代码:

  • 我有下面的代码,它设置了一个特定大小的窗口。它还从外部URL加载图像。

  • 我刚开始使用JFace/SWT进行GUI编程。在我使用普通SWT窗口(http://help.eclipse.org/indigo/index.jsp?topic=%2forg.eclipse.wb.ercp.doc.user%2fhtml%2fwizards%2fercp%2fapplication_window.html)之前,我第一次尝试了JFace应用程序窗口。 现在我要设置这个窗口的最小

  • 我有一个JFrame,其中包含一个面板。我还向面板添加了。到目前为止,我所做的是在我的框架上使用来对调整窗口大小做出反应。 下面是我的代码片段: 当更改框架的大小时,的大小可以完全调整。但是当我最大化我的框架,图表面板不会改变它的大小!它保持在最大化之前的时刻。因此,当我再次“取消最大化”我的框架时,图表面板被最大化,这导致了问题,图表将不再适合图表面板。所有这些调整尺寸的事情似乎都“落后一步”.