11

我在 javafx2 中取消了对窗口的装饰。现在我想通过操作来最小化窗口。这是我的代码

    minIcon.setOnMouseClicked(new EventHandler<MouseEvent>() {
        public void handle(MouseEvent me) {
            primaryStage.toBack();
        }
    });

当另一个窗口打开时,窗口会返回。否则不是。请让我知道如何做到这一点?

4

2 回答 2

42

搜索了一段时间后,我自己找到了答案。

minIcon.setOnMouseClicked(new EventHandler<MouseEvent>() {
    public void handle(MouseEvent me) {
        primaryStage.setIconified(true);
    }
});

这工作正常..

于 2012-12-13T06:56:51.207 回答
1

以下代码应该可以工作:

iconid.setOnMouseClicked( event -> {
  Stage obj = (Stage) iconid.getScene().getWindow();
  obj.setIconified(true);
});

编辑:我是新来的,所以我不知道如何更好地展示我的代码。所以我会尽力而为。

这是 expln:- 变量含义- iconid:您的 ImageView 元素的 fxid。 obj :您可以声明的随机舞台对象。

event ->{}是一个 lambda 函数,它减少了我的工作量,所以我经常使用它。

第二行的作用是创建一个新的舞台对象并将其等同于正在显示的当前舞台,这是使用.getScene().getWindow()属性检索的。为了保持一致性,我使用了相同的 ImageView 元素,但您可以使用属于同一阶段的任何元素。(例如,来自同一窗口的按钮)

第三行是您调用该方法的位置setIconified(boolean)[不是最好的命名 ik,但我认为它与将其“图标化”到任务栏有关 - 将其从窗口变成图标] 将其设置为“真”可最小化您指定的窗口. 就是这样。

于 2020-12-05T19:13:10.883 回答