可以将舞台固定在桌面上吗?
我希望将我的应用程序表现为小部件,因此当它启动时,它应该显示在桌面的正上方,而不是在可能打开的当前应用程序的前面。
小部件的另一个条件是它在任务栏中没有条目。这也可能吗?
答案 0 :(得分:6)
我尝试使用JavaFX 2.2并得到以下结果:
因此,当它启动时,它应该显示在桌面的正上方,而不是在可能打开的当前应用程序的前面
调用stage.toBack将在任何其他窗口后面放置一个阶段。
我能够得到一个窗口,大多数时候总是留在其他窗口后面(至少在Mac上)。为此,我在clock application显示舞台之前添加了几个听众和过滤器。
stage.focusedProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observableValue, Boolean wasFocused, Boolean focused) {
stage.toBack();
}
});
stage.addEventFilter(MouseEvent.ANY, new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent mouseEvent) {
stage.toBack();
}
});
现在有能力设置stage to always be on top的请求。您可以为舞台始终落后的能力创建新的相应请求。
小部件的另一个条件是它在任务栏中没有条目
在Windows上,我认为如果您init the stage style到StageStyle.UTILITY,则Windows不会在Windows任务栏中显示该阶段的图标。
我在OS X上尝试了几种不同的舞台样式,当我运行应用程序时,一个小的Java杯图标将始终显示在OS X底座中(与Windows不同)设置icons for the stage没有摆脱Java杯图标。也许如果你创建了一个self-contained OS X应用程序,你可以在打包步骤中关闭它,或者将图标设置为透明图像,这样用户就不会看到它。
您还可以在JavaFX issue tracker中为此创建功能请求(与常设功能分开)。如果您创建与此相关的任何问题,请解释您的用例并链接回此问题。