我认为mIRC的以下屏幕截图将帮助您了解我的问题。
我有一个主舞台(1),在一些Pane(或任何其他容器)(2)中,我想以这样的方式添加几个子窗口(3),所以它们不能移到拥有之外窗口,并且它们在操作系统任务栏中不可见/可选。
有没有办法在JavaFX 2.2中执行此操作? 如果没有窗户(单独的阶段),是否可以与任何其他可移动容器一起使用?
答案 0 :(得分:2)
JavaFX 2.2中没有框架来促进这一点。
您可以使用JavaFX问题跟踪器跟踪并投票支持JavaFX Docking Framework功能请求。
您可以使用公共JavaFX API自行创建此类框架。使用阶段,可能有点难以准确地获得您想要的行为,但我认为如果您使用放置在主应用程序阶段内的自定义可移动窗格,则可能会这样做。
但是,在提供对接框架的正式实现之前,最好使用现有的应用程序框架(如NetBeans)并将JavaFX组件嵌入JFXPanels within frames created by the existing framework中。
回答您的一些具体问题。
在OS任务栏中不可见/可选。
在显示新子窗口之前,请调用子窗口。initOwner将子窗口的所有者设置为应用程序的主要阶段。
他们不能移出拥有窗口
您可以为子窗口和主窗口的x,y,width和height属性添加侦听器。如果尝试将子窗口移动到父窗口的边界之外,则在侦听器代码中重新定位子窗口。如果在JavaFX监听器收到通知之前操作系统处理大小和位置更改通知,这种策略可能会有点笨拙(我认为可能就是这种情况)。
答案 1 :(得分:1)
参见VFXWindows项目。它允许您在JavaFX应用程序中创建窗口和子窗口。它是JFXtras 2包的一部分。