web-dev-qa-db-fra.com

Comment changer l'icône sur la barre de titre d'une étape dans Javafx 2.0 de mon application

J'ai essayé le 

 stage.getIcons().add(new Image("attuncore.jpg")); 

Mais je ne sais pas ce qui ne va pas ..

S'il vous plaît aider. Merci d'avance.

10
Bipin Bhandari

Programme complet pour les débutants :) Ce programme a défini Stack Overflow Icon.

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class StackoverflowIcon extends Application {

    @Override
    public void start(Stage stage) {
        StackPane root = new StackPane();
        // set icon
        stage.getIcons().add(new Image("/path/to/stackoverflow.jpg"));
        stage.setTitle("Wow!! Stackoverflow Icon");
        stage.setScene(new Scene(root, 300, 250));
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

Sortie Screnshot

JavaFX Screenshot

Mis à jour pour JavaFX 8

Pas besoin de changer le code. Cela fonctionne toujours bien. Testé et vérifié en Java 1.8 (1.8.0_45). Le chemin peut être défini sur local ou distant, les deux sont pris en charge.

stage.getIcons().add(new Image("/path/to/javaicon.png"));

OR

stage.getIcons().add(new Image("https://example.com/javaicon.png"));

enter image description here

J'espère que ça aide. Merci!!

45
Madan Sapkota

Vous pouvez charger l'image depuis le classpath comme ceci:

new Image(XYZ.class.getResourceAsStream("/xyz.png"))

où XYZ est un nom de classe (peut-être celui dans lequel vous chargez l'image) et xyz.png est le nom de votre fichier image, placé dans un répertoire (ou fichier JAR) inclus dans votre chemin de classe.

Si vous souhaitez placer l'image à côté du fichier source, vous devez omettre le caractère /. Votre IDE doit être configuré pour copier les ressources (comme * .png) du répertoire src vers le répertoire bin, puis. Mais ceci est supposé être le comportement standard.

5
Frank Bruch

La solution que j’ai trouvée en définissant les propriétés du répertoire de travail autonome dans un package dans lequel mon image principale et principale est placée. 

1
Bipin Bhandari

N'oubliez pas de faire l'importation 

import javafx.scene.image.Image;

Image icon = new Image(getClass().getResourceAsStream("myicon.png"));
stage.getIcons().add(icon);

Remplacez "myicon.png" par votre icône. Dans ce cas, il se trouve dans le même dossier que votre classe Java.

1
daviek19

Votre image a-t-elle la taille correcte? Javadoc déclare:

public final ObservableList getIcons ()

Obtient les images d'icônes à utiliser dans les décorations de fenêtre et lorsque Est minimisé. Les images doivent être de tailles différentes pour la même image et Sera choisie la meilleure taille, par exemple. 16x16, 32,32.

1
Sergey Grinev

Pour ceux qui ont eu un problème avec: 

URL non valide: URL non valide ou ressource non trouvée

La meilleure solution consiste à créer un nouveau package, à savoir image.icons, et à y déplacer votre image .png. Ensuite, il vous suffit d'écrire:

Image image = new Image("/image/icons/list.png");
primaryStage.getIcons().add(image);

J'espère que cela aide quelqu'un!

0
Dawid