2012-04-23 16 views

risposta

1

L'immagine ha le dimensioni corrette? Stati Javadoc:

getIcons ObservableList finali pubblici()

Ottiene le immagini icona da utilizzare nelle decorazioni delle finestre e quando ridotto al minimo. Le immagini devono avere dimensioni diverse della stessa immagine e verrà scelta la dimensione migliore, ad es. 16x16, 32,32.

+0

Grazie Sergey ma dimensione immagine non influisce sul fatto che lo penso. ma sì, ho finalmente ottenuto la soluzione impostando le proprietà della directory di lavoro standalone per il pacchetto in cui sono posizionati il ​​mio principale e l'immagine. –

+0

oh, l'individuazione delle immagini era un problema, fantastico lo hai scoperto. C'erano un sacco di problemi simili, ad esempio: http://stackoverflow.com/questions/10062270/how-to-target-a-file-a-path-to-it-in-java-javafx –

1

La soluzione che ho trovato impostando le proprietà della directory di lavoro standalone per il pacchetto in cui sono posizionati il ​​mio principale e l'immagine.

5

È possibile caricare l'immagine dal percorso di classe in questo modo:

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

dove XYZ è un po nome di classe (forse quello che si desidera caricare l'immagine da) e xyz.png è il nome del file di immagine , inserisci una directory (o file JAR) inclusa nel classpath.

Se si desidera mettere l'immagine accanto al file sorgente, è necessario omettere il carattere /. L'IDE deve essere configurato per copiare risorse (come * .png) da src a directory bin, quindi. Ma questo dovrebbe essere il comportamento standard.

44

Programma completo per principianti :) Questo programma imposta l'icona di sovraccarico dello stack.

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

uscita screnshot

JavaFX Screenshot

aggiornato per JavaFX 8

Non c'è bisogno di modificare 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")); 

enter image description here

Speranza che aiuta. Grazie!!

+0

Mi chiedo come mai nessun organismo ti ha votato, grazie per la risposta –

+0

Le dimensioni contano? c: – codepleb

+0

Risposta perfetta e la dimensione non sembra avere importanza. –

1

non dimenticate di fare l'importazione

import javafx.scene.image.Image; 

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

Sostituire "myicon.png" con l'icona. In questo caso si trova nella stessa cartella della classe java.

0

Per coloro che hanno avuto un problema con:

URL non valido: URL o una risorsa non valido non trovato

La soluzione migliore è quella di fare nuove pacchetto vale a dire image.icons e spostare lì il vostro. immagine png. Allora non vi resta che scrivere:

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

Spero che questo aiuta qualcuno!