我正在尝试修改一个现有的JavaFX GUI程序,使其具备“始终置顶”的功能。目前JavaFX不支持此功能(为什么?!),因此我在Google上搜索后得知必须将Swing与我的JavaFX应用程序结合起来才能实现这一点。虽然不是最理想的方法,但也可以。
我找到的所有示例模式都使用
我该如何在
我找到的所有示例模式都使用
JFXPanel
而不是Stage
,但由于我的应用程序已经存在并且从一开始就使用了JavaFX编写(代码库中没有任何Swing),因此删除Stage
以支持此“始终置顶”功能开始变得重要而需要大量重写。我该如何在
JFXPanel
或类似的控件中嵌入现有的JavaFX Stage
,以便使用标准的getSomeSwingWindowOrPanel().setAlwaysOnTop(true);
并使我的应用程序浮动在所有其他窗口之上?我是否走错了路,例如是否有更好的方法,例如使用JNI或其他方法?
FXMLLoader
读入的 FXML... 然而将stage
更改为JFXPanel
会移除很多功能,比如特殊的 JavaFX 事件处理程序、舞台标题和stage.setOnCloseRequest()
等等。没有办法保留现有程序逻辑并将这些功能应用到Stage
吗? - SnakeDoc