Как сделать JavaFX-виджет

можно ли прикрепить сцену к рабочему столу?

Я хочу, чтобы мое приложение вело себя как виджет, поэтому при запуске оно должно отображаться прямо над рабочим столом, а не перед текущим приложением, которое может быть открыто.

Другим условием для виджета будет отсутствие записи на панели задач. Это тоже возможно?


person Gundon    schedule 29.03.2013    source источник
comment
Посмотрите на youtube.com/watch?v=IFIlr6cpX64.   -  person joey rohan    schedule 29.03.2013
comment
Вы не можете сделать это напрямую в java, они встроены в html и javascript.   -  person joey rohan    schedule 29.03.2013


Ответы (1)


Я попробовал это с 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();
  }
});

Существует существующий запрос на возможность установить стадию, чтобы всегда быть наверху. Вы можете создать новый соответствующий запрос, чтобы этап всегда отставал.

Другим условием для виджета будет отсутствие записи на панели задач.

Я думаю, что в Windows, если вы запустите этап стиль на StageStyle.UTILITY, то Windows не показать значок этапа на панели задач Windows.

Я попробовал несколько разных стилей сцены в OS X, и маленький значок чашки Java всегда отображался в доке OS X, когда я запускал приложение и (в отличие от Windows) устанавливал значки для сцены не избавились от значка чашки Java. Возможно, если вы создали автономное приложение OS X, вы могли бы повернуть значок отключите его на этапе упаковки или установите для значка прозрачное изображение, чтобы оно не было видно пользователю.

Вы также можете создать запрос функции для этого (отдельно от запроса «всегда возвращаться») в системе отслеживания проблем JavaFX. Если вы создадите какие-либо проблемы, связанные с этим, объясните свой вариант использования и вернитесь к этому вопросу.

person jewelsea    schedule 30.03.2013
comment
Это решение отлично сработало для меня в Windows, хотя мне не нужно скрывать окно с панели задач. Я думаю, что теперь, с JavaFX 8, где у нас есть функциональность alwaysOnTop, должна быть похожая вещь, чтобы окно всегда оставалось позади. Кто-нибудь знает, есть ли проблема с официальным трекером проблем? - person marcel; 30.03.2015
comment
Я не знаю, был ли создан запрос функции. При желании вы можете выполнить поиск в системе отслеживания проблем и создать ее, если еще нет существующего запроса функции. - person jewelsea; 30.03.2015