Jeu d'icônes pour l'application JavaFX est visible dans Windows mais pas dans Ubuntu


C'est un peu bizarre ou peut-être qu'il y a quelque chose qui ne va pas avec mon code.

Je mets l'ICÔNE de l'application JavaFX qui est très bien visible sur le système Windows mais pas sur Ubuntu.

Sous Windows:

Sur La Barre des TâchesSur La Fenêtre

Sur Ubuntu:

Sur Ubuntu unity-panneau

Une idée de la raison derrière cela.

Exemple de code:

@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();
    }
}
Author: Indigo, 2014-09-25

1 answers

Pour les personnes à la recherche d'une solution, il s'agit d'un problème ouvert dans le JDK issue tracker.

Gtk: Implémenter la prise en charge globale de la barre de menus du système

Selon un commentaire par JavaFX développeur sur un problème similaire :

Glass/FX ne prend actuellement pas en charge la barre de menus globale sur GTK (RT-28202). En tant que tel, Glass ne définit aucun indice à l'échelle de l'application pour spécifier le nom de l'application ou l'icône de l'application. L'environnement de bureau doit les deviner lui même (probablement, en utilisant le titre et l'icône d'une fenêtre). Par conséquent, il est correct que la "fenêtre de l'application" (#1 ci-dessus) doit toujours afficher le titre correct, tandis que les 3 autres endroits peuvent ou non afficher le titre correct en fonction des horaires. Il est peu probable que cela change tant que RT-28202 n'est pas mis en œuvre.

RT-28202 était l'id de problème pour le problème lié ci-dessus avant que les problèmes JavaFX ne soient fusionnés avec les problèmes JDK.

Cette question a un très moins de votes et n'a donc pas attiré beaucoup intérêt. Si vous êtes inscrit en tant que contributeur, n'hésitez pas à voter pour la question.

 5
Author: ItachiUchiha, 2015-11-16 06:48:51