如何制作JavaFX-Widget

Gun*_*don 5 java javafx javafx-2 fxml

是否有可能将舞台固定在桌面上?

我想将我的应用程序表现为小部件,因此当它启动时,它应该显示在桌面的正上方,而不是在可能打开的当前应用程序的前面.

小部件的另一个条件是它在任务栏中没有条目.这也可能吗?

jew*_*sea 6

我尝试使用JavaFX 2.2并得到以下结果:

因此,当它启动时,它应该显示在桌面的正上方,而不是在可能打开的当前应用程序的前面

调用stage.toBack将在任何其他窗口后面放置一个阶段.

我能够得到一个窗口,大多数时候总是留在其他窗口后面(至少在Mac上).为此,我在时钟应用程序中显示舞台之前添加了几个侦听器和过滤器.

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();
  }
});
Run Code Online (Sandbox Code Playgroud)

现有的要求是能够设置一个始终位于顶部阶段.您可以为舞台始终落后的能力创建新的相应请求.

小部件的另一个条件是它在任务栏中没有条目

在Windows上,我认为如果您将舞台样式初始化StageStyle.UTILITY,则Windows不会在Windows任务栏中显示该舞台的图标.

我在OS X上尝试了几种不同的舞台样式,当我运行应用程序时,一个小的Java杯图标将始终显示在OS X底座中(与Windows不同)设置舞台图标并没有摆脱Java杯图标.也许如果您创建了一个独立的 OS X应用程序,您可以在打包步骤中关闭它,或者将图标设置为透明图像,以便用户看不到它.

您还可以在JavaFX问题跟踪器中为此创建一个功能请求(与常备功能分开).如果您创建与此相关的任何问题,请解释您的用例并链接回此问题.