2016-09-01 2 views
0

Я ищу способ реализовать простое всплывающее окно, которое отображается на экране всего несколько секунд; возможно, похоже на то, сколько музыкальных программ покажет новую информацию о художнике/песне в углу экрана, когда начнется новая песня.(JavaFX) Как показать временное всплывающее окно (OSD) при выполнении действия?

Я хочу, чтобы показать кратким подтверждением успешного выполнения определенного действия. В моем случае двойной щелчок на ячейке TableView скопирует содержимое ячейки на Clipboard. Однако я хочу показать пользователю, что это было сделано.

Мне нужен клиент Alert или руководство Tooltip для этого или существует существующий API, который я еще не нашел?

ответ

1

Используйте то, что реализация всплывающего окна является наиболее удобным, а также использовать PauseTransition, чтобы скрыть его после необходимого времени:

// can use an Alert, Dialog, or PopupWindow as needed... 
Stage popup = new Stage(); 
// configure UI for popup etc... 

// hide popup after 3 seconds: 
PauseTransition delay = new PauseTransition(Duration.seconds(3)); 
delay.setOnFinished(e -> popup.hide()); 

popup.show(); 
delay.play(); 
+0

Спасибо, @James_D. Вместо этого я использовал «Timeline», поскольку «PauseTransition» не работал. – Zephyr

0

В дополнение к James_D ответ я рекомендую:

Notifications

enter image description here

Они построены в библиотеке ControlsFX и делают то, что вам нужно.

Пример:

Notifications.create() 
       .title("Title Text") 
       .text("Hello World 0!") 
       .showWarning(); 
Смежные вопросы