2016-05-12 26 views
1

我想知道为什么在创建Alert时需要initOwner()?这两个代码 - 有和没有initOwner()工作。谁能告诉我为什么我应该使用initOwner()方法?initOwner角色 - JavaFX

回答

1

除了不同的外观和行为由一月的回答中指出,窗口所有权层次影响window modality

对于窗口模式对话框,如果您设置了所有者,则对话框将阻止所有者阶段的输入,并且用户将无法在没有先关闭子项的情况下关闭所有者阶段。

如果您拥有一个拥有者的窗口模式对话框,用户将无法专注于所有者对话框中的字段,直到关闭子对话框。

如果窗口模式对话框没有所有者,则用户可以在所有者和孩子的字段之间切换焦点。

对于拥有所有者的非模态窗口,所有权也会影响窗口的关闭。如果用户关闭了父窗口,那么孩子也会关闭。

1

根据操作系统的不同,根据是否拥有所有者,对话框可能会有所不同。如果您查看下图中文件打开对话框的OS X示例,则对话框会在指定时“滑出”所有者窗口顶部。如果没有指定所有者窗口,则该对话框将显示为常规“分离”对话框窗口。

enter image description here