除非有失效监听器,否则属性不会调用更改侦听器,出了什么问题?

时间:2018-05-10 19:17:56

标签: java javafx

我在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");
    }
});

它按预期工作。即使从第一次更改开始,也会开始调用更改侦听器。

有什么可能导致这种行为?

0 个答案:

没有答案