JavaFX - 按钮用于最小化舞台

4

我在一个JavaFX应用程序中有一个未装饰的舞台。为了最小化它,我需要一个最小化按钮。我在一个fxml文档中创建了我的布局,其中包括一个最小化按钮,但是当我尝试使用控制器内的此按钮的操作监听器通过stage.setIconified(true)进行最小化时,它无法找到阶段。

如何在控制器类中找到对舞台的引用?


“cannot find the stage” 是什么意思?你有错误信息吗? - Dici
3个回答

10

你可以尝试:

button.setOnAction(e -> {
    ((Stage)((Button)e.getSource()).getScene().getWindow()).setIconified(true);
});

0

解决方案1是由ItachiUchiha发布的。

解决方案2只需在控制器中创建一个setter方法,然后将舞台本身赋给控制器。


1
我很好奇,这种方法相比ItachiUchiha的回答有什么优势? - Brad Turek

0
使用以下代码将 JavaFX 窗口最小化:
``` Stage stage = (Stage) minimize.getScene().getWindow(); stage.setIconified(true); // minimize 可以是场景中的任何元素 ```

1
你能否详细说明一下它的工作原理和为什么这样做呢? :) - Lars Nielsen
请遵循Java命名规范。 - kleopatra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接