繁体   English   中英

在JFXPanel中嵌入JavaFX Stage(Swing Embed)

[英]Embed JavaFX Stage inside JFXPanel (Swing Embed)

我正在尝试修改现有的JavaFX GUI程序,使其具有“始终保持最佳状态”的功能。 目前JavaFX不支持这一点(为什么!?!?),所以一些谷歌搜索让我相信我必须将Swing与我的JavaFX应用程序结合才能实现这一目标。 不理想,但还可以。

我发现的所有示例模式都使用JFXPanel而不是Stage ,但是由于我的应用程序已经存在并且从一开始就使用JavaFX编写(此时零Swing在代码库中),从应用程序中删除Stage开始变为主要重写只是为了支持这个“在顶部”的功能。

如何将现有的JavaFX Stage嵌入到JFXPanel或类似的中,这将允许我使用标准的getSomeSwingWindowOrPanel().setAlwaysOnTop(true); 并按预期使我的应用程序浮动在所有其他窗口之上? 我是不是错了,即。 是否有更好的方法,如使用JNI或其他东西?

在Java 8u20中的阶段中添加了setAlwaysOnTop()方法。

public final void setAlwaysOnTop(boolean value)

设置属性alwaysOnTop的值。

楼盘简介:

定义此舞台是否保持在其他窗口之上。 如果某个其他窗口已经始终在顶部,那么这些窗口之间的相对顺序是未指定的(取决于平台)。

如果存在安全管理器,则应用程序之间的行为会有所不同。 具有权限的应用程序可以在舞台上设置“always on top”标志。 在没有适当权限的应用程序中,将忽略设置标志的尝试,并将属性值恢复为“false”。

该属性是只读的,因为它可以由底层平台在外部进行更改,因此不能是可绑定的。

默认值:

以来:

JavaFX 8u20

我发现的所有示例模式都使用JFXPanel而不是Stage,但是由于我的应用程序已经存在并且从一开始就使用JavaFX编写(此时零Swing在代码库中),从应用程序中删除舞台开始变为主要重写只是为了支持这个“在顶部”的功能。

添加“始终保持最佳状态”功能(不删除舞台 )的更好方法是: -

stage.initModality(Modality.APPLICATION_MODAL);

我希望这个对你有用........

干杯

[1] http://docs.oracle.com/javafx/2/api/javafx/stage/Stage.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM