首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaFX: WindowEvent.WINDOW_HIDDEN

JavaFX: WindowEvent.WINDOW_HIDDEN
EN

Stack Overflow用户
提问于 2017-08-13 21:08:55
回答 1查看 378关注 0票数 1

我已经写了我自己的EventHandler,它没有什么特别的功能。这只是为了练习。他来了:

代码语言:javascript
复制
import javafx.event.EventHandler;
import javafx.stage.WindowEvent;

public class JavaFXMyWindowListener implements EventHandler<WindowEvent>{

    @Override
    public void handle(WindowEvent event) {

        System.out.println("WindowEvent: " +  event.getEventType());

        if(event.getEventType() == WindowEvent.WINDOW_CLOSE_REQUEST){
            System.out.println("Window closed");
            event.consume();
        }

        if(event.getEventType() == WindowEvent.WINDOW_SHOWING){
            System.out.println("Window activ");
        }

        if(event.getEventType() == WindowEvent.WINDOW_SHOWN){
            System.out.println("Window opened");
        }

        if(event.getEventType() == WindowEvent.WINDOW_HIDDEN){
            System.out.println("Window minimized");
        }

        if(event.getEventType() == WindowEvent.WINDOW_HIDING){
            System.out.println("Window is going to be minimized");
        }

    }

}

我对最后的du if有问题。WINDOW_HIDDEN和WINDOW_HIDING似乎不起作用,因为当我最小化窗口时,System.out从不发生。其他3个事件起作用。此外,最顶部的System.out不会发生,这意味着事件永远不会发生。我在主类中添加了如下的eventhandler:

代码语言:javascript
复制
stage.addEventHandler(WindowEvent.ANY, new JavaFXMyWindowListener());

我发现了以下解决方法:

代码语言:javascript
复制
stage.iconifiedProperty().addListener(new ChangeListener<Boolean>() {
      @Override public void changed(ObservableValue<? extends Boolean> prop, Boolean oldValue, Boolean newValue) {
          if(newValue){
              System.out.println("Window minimized");
          }else{
              System.out.println("Window was minimized and gets back now");
          }
      }
});

它正在做我想做的事情,但是为什么WINDOW_HIDDEN & WINDOW_HIDING不起作用呢?我不明白,请帮帮忙。谢谢并致以问候。

EN

回答 1

Stack Overflow用户

发布于 2017-08-13 23:59:58

HIDINGHIDDEN分别表示“关闭”和“关闭”,而不是最小化(它指的是hide()方法)。

对于Stage,您可以向iconified property注册侦听器,以便在其最小化时进行响应。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45660688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档