5

我认为 mIRC 的以下屏幕截图将帮助您理解我的问题。

mIRC 中的多个子窗口

我有一个主舞台 (1),在某个窗格(或任何其他容器)(2) 中,我想以这种方式添加几个子窗口 (3),这样它们就不能移到拥有窗口之外并且它们不可见/ 在 OS 任务栏中可选择

有没有办法在 JavaFX 2.2 中做到这一点?如果不使用窗户(单独的舞台),是否可以使用任何其他可移动容器?

4

2 回答 2

2

JavaFX 2.2 中没有框架来促进这一点。

您可以使用 JavaFX 问题跟踪器跟踪 JavaFX对接框架功能请求并为其投票。

您可以使用公共 JavaFX API 自己创建这样的框架。使用 Stages,可能有点难以获得您想要的行为,但我认为如果您使用放置在主应用程序阶段内的自定义可移动窗格,这将是可能的。

但是,在提供对接框架的正式实现之前,您最好使用现有的应用程序框架(如 NetBeans)并将您的 JavaFX 组件嵌入到由现有框架创建的框架内的 JFXPanel 中

回答您的一些具体问题。

在 OS 任务栏中不可见/不可选。

在显示新的子窗口之前,请调用 subwindow。initOwner将子窗口的所有者设置为应用程序的主要阶段。

它们不能移出拥有窗口

您可以将侦听器添加到子窗口和主窗口的 x、y、宽度和高度属性。如果尝试将子窗口移出父窗口的边界,则在侦听器代码中重新定位子窗口。如果在您的 JavaFX 侦听器收到通知之前由操作系统处理大小和位置更改通知(我认为很可能是这种情况),这种策略可能会有点笨拙。

于 2012-10-02T00:51:45.093 回答
1

请参阅VFXWindows项目。它允许您在 JavaFX 应用程序中创建窗口和子窗口。它作为JFXtras 2包的一部分提供。

于 2013-06-16T19:12:42.407 回答