我在JavaFX中为isShown
的{{1}}属性设置了一个监听器:
Stage
我有一个复杂的逻辑,可能导致在应用程序启动时不显示舞台(它只显示一个托盘栏图标)。当它开始隐藏时,第一次显示它时,监听器不会收到任何通知。之后它开始正常工作。我尝试在最小的例子中重现它,但我还没有。
如果我添加一个失效监听器,那有多奇怪:
stage.showingProperty().addListener((observable, old, showing) -> {
if (showing) {
System.out.println("Now it's shown");
} else {
System.out.println("Now it's hidden");
}
});
它按预期工作。即使从第一次更改开始,也会开始调用更改侦听器。
有什么可能导致这种行为?