Icona dell’applicazione JavaFX

È ansible modificare l’icona dell’applicazione utilizzando JavaFX oppure è necessario farlo utilizzando Swing?

Supponendo che il tuo stage sia “stage” e il file sia sul filesystem:

stage.getIcons().add(new Image("file:icon.png")); 

Come per il commento qui sotto, se è racchiuso in un contenitore contenente, dovrai invece utilizzare il seguente approccio:

 stage.getIcons().add(new Image(.class.getResourceAsStream("icon.png"))); 

Ho provato questo e funziona completamente. Il codice è:

 stage.getIcons().add( new Image( .class.getResourceAsStream( "icon.png" ))); 

icon.png si trova nella stessa cartella dei file sorgente.

Programma completo per principianti 🙂 Questo programma imposta l’icona Stack Overflow.

 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); } } 

Output Screnshot

Screenshot JavaFX

Aggiornato per JavaFX 8

Non c’è bisogno di cambiare il codice. Funziona ancora bene. Testato e verificato in Java 1.8 (1.8.0_45). Il percorso può essere impostato su locale o remoto entrambi sono supportati.

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

O

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

inserisci la descrizione dell'immagine qui

Spero che sia d’aiuto. Grazie!!

Se si dispone di una cartella di immagini e l’icona viene salvata in che utilizzare questo

 stage.getIcons().add(new Image(.class.getResourceAsStream("/images/comparison.png"))); 

e se lo usi direttamente dal tuo pacchetto, che non è una buona pratica, usa questo

 stage.getIcons().add(new Image(.class.getResourceAsStream("comparison.png"))); 

e se hai una struttura di cartelle e hai l’icona all’interno di quell’uso

 stage.getIcons().add(new Image(.class.getResourceAsStream("../images/comparison.png"))); 

puoi aggiungerlo in fxml. Livello del palcoscenico

    

Cosa ne pensi della creazione di un nuovo pacchetto ie image.icons nella tua directory src e di spostare lì le immagini .png? Di quello che devi solo scrivere:

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

Questa soluzione funziona perfettamente per me, ma ancora non sono sicuro che sia corretto (principiante qui).

 stage.getIcons().add(new Image(.class.getResourceAsStream("/icon.png"))); 

Se your icon.png è in risorse dir e ricorda di mettere un ‘/’ prima altrimenti non funzionerà

 stage.getIcons().add(new Image(.class.getResourceAsStream("/icon.png" ))); 

È ansible aggiungere più di un’icona con dimensioni diverse utilizzando questo metodo. Le immagini devono avere dimensioni diverse della stessa immagine e verrà scelta la dimensione migliore. eg. 16x16, 32,32

 stage.getIcons().add(new Image("/images/logo_only.png")); 

È buona abitudine creare una cartella di immagini nella cartella src e ottenere immagini da essa.

 stage.getIcons().add(new Image(ClassLoader.getSystemResourceAsStream("images/icon.png"))); 

la cartella delle immagini deve essere nella cartella delle risorse.

L’ho usato nella mia applicazione

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

Qui la finestra è il palcoscenico.

stage.getIcons (). add (new Image ((“nospaniol / ui / icons / nospaniol.png”)));

Ho provato questo e funziona:

 stage.getIcons().add(new Image(getClass().getResourceAsStream("../images/icon.png"))); 

Immagine image3 = nuova immagine (“Percorso”);
. Stage.getIcons () aggiungere (immagine 3);

Un altro modo semplice per inserire la propria icona sulla barra del titolo in JavaFX è di aggiungere l’immagine allo stage principale utilizzando il seguente metodo:

 Image ico = new Image("resources/images/iconLogo.png"); stage.getIcons().add(ico); 

Assicurati di importare javafx.scene.image.Image (se usi un ide come netbeans questo dovrebbe essere fatto automaticamente per te).