Набор ICON для приложения JavaFX отображается в Windows, но не в Ubuntu
Это немного странно или, возможно, что-то не так с моим кодом.
Я устанавливаю приложение ICF приложения JavaFX, которое очень хорошо видно в системе Windows, но не на Ubuntu.
В Windows:
![On Taskbar]()
![On Window]()
В Ubuntu:
![On Ubuntu unity-panel]()
Любая идея о причине этого.
Пример кода:
@Override
public void start(Stage stage) throws Exception {
try {
setUserAgentStylesheet(STYLESHEET_MODENA);
FXMLLoader loader = new FXMLLoader();
Parent root = (Parent) loader.load(getClass().getResourceAsStream("ui/ParentWindow.fxml"));
final ParentWindowController controller = (ParentWindowController) loader.getController();
stage.addEventHandler(WindowEvent.WINDOW_SHOWN, controller::handleWindowShownEvent);
stage.addEventHandler(WindowEvent.WINDOW_SHOWING, controller::handleWindowShowingEvent);
stage.addEventHandler(WindowEvent.WINDOW_CLOSE_REQUEST, controller::handleWindowClosingRequestedEvent);
Scene scene = new Scene(root);
scene.getStylesheets().setAll(
getClass().getResource("ui/css/ParentWindow.css").toExternalForm()
);
stage.setScene(scene);
stage.initStyle(StageStyle.UNIFIED);
stage.setResizable(false);
stage.toFront();
stage.setTitle("Simple JavaFX Tool");
stage.getIcons().add(new Image(getClass().getResourceAsStream("resources/images/icon.jpg")));
stage.show();
} catch (IOException iOException) {
iOException.printStackTrace();
}
}
Ответы
Ответ 1
Для людей, которые ищут решение, это открытая проблема в трекер JDK.
Gtk: поддержка глобальной панели меню
Согласно комментарию разработчика JavaFX на аналогичной проблеме:
Glass/FX в настоящее время не поддерживает глобальную панель меню на GTK (RT-28202). Таким образом, Glass не устанавливает никаких подсказок в приложении, чтобы указать имя приложения или значок приложения. Окружение рабочего стола должно угадывать их самостоятельно (вероятно, используя заголовок окна и значок). Следовательно, правильно, что "окно приложения" (# 1 выше) должно всегда отображать правильное название, в то время как другие 3 места могут или не могут отображать правильный заголовок в зависимости от таймингов. Это вряд ли изменится до тех пор, пока не будет установлен RT-28202.
RT-28202 был идентификатором проблемы для вышеупомянутой связанной проблемы, прежде чем проблемы с JavaFX были объединены с проблемами JDK.
Этот вопрос имеет очень меньше голосов и поэтому не вызвал большого интереса. Если вы зарегистрированы в качестве участника, не стесняйтесь голосовать за проблему.