JavaFX窗口setOnShown()与setOnShowing()的比较

JavaFX窗口setOnShown()与setOnShowing()的比较,java,javafx-8,desktop-application,Java,Javafx 8,Desktop Application,几个月以来,我就开始开发JavaFX桌面应用程序。在浏览窗口事件时,我遇到了这两种类型的事件设置,setOnShown()和setOnShowing()用于window(或childStage)类。隐藏窗口的方法也类似。我也知道一个人应该在展示窗户的时候开火,一个人应该在展示窗户的时候开火。现在我想问: 这两个事件分开的确切原因是什么?setOnShowing()还不够吗 如果我试图打开的窗口在每次打开时都进行数据库调用以填充其中的表,那么在这种情况下我应该使用哪个事件 这个问题可能看起来很傻,

几个月以来,我就开始开发JavaFX桌面应用程序。在浏览窗口事件时,我遇到了这两种类型的事件设置,
setOnShown()
setOnShowing()
用于
window
(或child
Stage
)类。隐藏窗口的方法也类似。我也知道一个人应该在展示窗户的时候开火,一个人应该在展示窗户的时候开火。现在我想问:

  • 这两个事件分开的确切原因是什么?setOnShowing()还不够吗
  • 如果我试图打开的窗口在每次打开时都进行数据库调用以填充其中的表,那么在这种情况下我应该使用哪个事件

  • 这个问题可能看起来很傻,但在否决投票之前请耐心等待。

    窗口显示
    → “此事件发生在窗口显示之前”<代码>显示的窗口→ “此事件在窗口显示后立即发生”。这就是为什么它们是独立的事件,因为它们发生在生命周期的不同时刻。隐藏/隐藏事件类型也是一样。生命周期,我明白。但是如果我的窗口及其节点是通过编程生成的,并且我在显示事件的
    窗口中调用数据库来获取记录,这不会影响性能,因为JVM可能正在渲染节点并调用db(因为窗口显示事件)同时,如果我没有弄错的话?我应该在显示窗口时还是在显示窗口后调用db?无论您使用什么(不一定与窗口相关)事件来触发它,数据库调用都不应该在JavaFX应用程序线程上进行。对,我得到了它。