JavaFX Stage - 最小化/恢复最大化阶段时如何侦听deiconified事件?

时间:2016-12-21 14:44:58

标签: javafx stage

将其添加到任何JavaFX应用程序的primaryStage中:

primaryStage.iconifiedProperty().addListener(e -> {
    System.out.println("iconified: " + primaryStage.isIconified());
});
  • 尽量减少舞台。输出是"图标化:true"。
  • 恢复舞台。输出是"图标化:false"。
  • 最大化舞台,然后将其最小化。输出是"图标化:true"。
  • 现在再次恢复舞台。输出应该是" iconified:false",而是它什么都不打印。

因此,在对最大化阶段进行deiconization时,我的iconifiedProperty侦听器未被调用。我做错了,或者这是JavaFX中的错误?我使用的是Java 1.8.0_65,JFX的任何版本都附带它。谢谢!

1 个答案:

答案 0 :(得分:0)

这是JavaFX中的一个错误,它似乎与不同版本一起出现。 特别令人讨厌的是因为某些组件(例如WebView)在这种情况下拒绝重新绘制 - 可能是因为它认为应用程序仍然被最小化,因此不需要重新绘制自己。

根据我自己的观察:

  • jre1.8.0_73:已修复
  • jre1.8.0_111:破碎
  • jre1.8.0_121:破碎
  • jre1.8.0_131:已修复
  • jre1.8.0_152:已修复

我目前正在寻找jre1.8.0_111的解决方法,这是我们必须使用的(由于121和131中更严重的错误)。