当前位置: 首页 > 面试题库 >

如何在JavaFX中监听Stage的大小调整事件?

壤驷涛
2023-03-14
问题内容

我想对窗体的大小调整事件(SceneStage其他任何事件)执行一些功能。

但是如何检测JavaFX中表单的大小调整事件?


问题答案:

你可以听的变化widthPropertyheightPropertyStage

stage.widthProperty().addListener((obs, oldVal, newVal) -> {
     // Do whatever you want
});

stage.heightProperty().addListener((obs, oldVal, newVal) -> {
     // Do whatever you want
});

注意: 要侦听宽度和高度的变化,可以非常简单地使用同一侦听器:

ChangeListener<Number> stageSizeListener = (observable, oldValue, newValue) ->
    System.out.println("Height: " + stage.getHeight() + " Width: " + stage.getWidth());

stage.widthProperty().addListener(stageSizeListener);
stage.heightProperty().addListener(stageSizeListener);


 类似资料:
  • 我一直在尝试对JavaFX阶段进行缩放转换,以替换应用程序主窗口的当前场景(在本例中为登录帧)。 当发生这种情况时,由于新场景更大,窗口的大小会以一种不优雅的方式突然被重新调整。

  • 在javaFX中,调整画布大小没有这样的方法,唯一的解决方案是从画布扩展。 “从画布扩展”是使画布可调整大小的唯一解决方案吗?因为这个解决方案只有在我们不想使用FXML的情况下才起作用,如果我们在FXML中声明一个画布,我们如何使它可以调整大小? 这是我的代码:

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

  • 这是我的主界面主界面 我在AnchorPane中有一个VBox (Fxid:datePane)。Vbox是蓝色的。 当单击标签为“Add”的按钮时,一个“second.fxml”文件被加载到VBox (Fxid:datePane)中。 加载的 fxml 文件采用 Vbox 的高度和宽度。 第二个.fxml有一个红色的VBox。 然而,如果我调整屏幕大小,加载的文件不会相应地改变其高度和宽度。调整屏

  • 我正在制作一个用于分发的JS/PHP插件。我希望它像这样容易安装: 但是,我希望这个插件附加一个窗口调整大小侦听器,而不重写,以防有任何其他脚本也需要使用该方法。是否有类似的javascript命令?我知道这不是问题,因为这不起作用,而且MDN和W3C对于采用什么参数非常模糊。 我不想要一个回答告诉我使用或,因为这些插件不友好。

  • 我在StackPane中调整ImageView的大小时遇到了一个问题:如果StackPane是根容器,并且我将图像的高度和宽度绑定到StackPane,则一切正常。 但若我将这样的堆栈窗格放置在网格中,那个么图像的大小就无法正确调整。正如我所读到的,ImageView无法调整大小的问题。有什么方法可以调整它的大小吗?或者你能给一些建议如何调整ImageView的大小吗?