![](/img/trans.png)
[英]What does “Exception in thread ”main“ java.lang.NoClassDefFoundError: javafx/embed/swing/JFXPanel” mean and how do I fix it?
[英]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.