2013-07-23 11 views
9

Ok, quindi ho cercato un po 'di tranquillità. Sono abbastanza nuovo per Java ma ho pensato che sarebbe stato facile. Ho provato praticamente in ogni modo a cui è stato risposto su questo sito e ancora senza fortuna, e di solito quando guardo qui sono in grado di trovare una risposta che si adatta a ciò che sto cercando. Qualcuno sa come cambiare l'icona di Java nell'angolo in alto di JFrame. Sono abbastanza positivo che non sia il mio percorso di file sia perché tutte le mie immagini sono nella stessa cartella e funzionano tutte, questo è l'unico che non riesco a trovare a lavorare.Come cambiare l'icona java in JFrame

Questa è la prima parte del mio codice per il menu principale del mio programma, tutto funziona tranne quando provo ad aggiungere l'immagine dell'icona. Il codice che ho inserito di seguito non contiene nulla per JFrame IconImage, l'ho rimosso poiché non funzionava. Quindi se c'è qualcuno che sa come farlo funzionare con questo codice che sarebbe molto apprezzato, grazie mille in anticipo!

public class MainFrame 
{ 
private MyPanel main; 
private MyPanel2 create; 
private MyPanel3 update; 
private MyPanel4 find; 
JFrame frame = new JFrame("Main Menu:"); 

public void displayGUI() 
{ 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    JPanel contentPane = new JPanel(); 
    contentPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); 
    contentPane.setLayout(new CardLayout()); 
    main = new MyPanel(contentPane, this); 
    create = new MyPanel2(contentPane); 
    update = new MyPanel3(contentPane); 
    find = new MyPanel4(contentPane); 
    contentPane.add(main, "Main Menu"); 
    contentPane.add(create, "Create Part"); 
    contentPane.add(update, "Update Part"); 
    contentPane.add(find, "Find Part"); 
    frame.setLocation(200, 200); 
    frame.setSize(700, 580); 
    frame.setContentPane(contentPane); 

    frame.setVisible(true); 

} 
+0

Messaggio del relativo codice di ** ** solo. Non vogliamo cercare nel tuo muro di codice la parte in cui viene cambiata l'icona del frame. Quindi dicci cosa ti aspetti da questa parte rilevante del codice e cosa invece fa. –

+0

Questa è la parte del codice in cui dovrebbe essere inserita la parte dell'icona di modifica. Ho provato numerosi modi diversi per inserire il codice, ma questo è il codice per JFrame senza il codice dell'icona di modifica. –

+0

Mostra il tuo tentativo migliore e dicci cosa succede. Suggerimenti: http://docs.oracle.com/javase/6/docs/api/javax/swing/JFrame.html#setIconImage%28java.awt.Image%29, http://docs.oracle.com/javase/ 6/docs/api/javax/swing/ImageIcon.html # getImage% 28% 29, http://docs.oracle.com/javase/tutorial/uiswing/components/frame.html –

risposta

14

Ho una risposta per voi. Innanzitutto, assicurati che le immagini siano in una cartella, non in un pacchetto. Quindi, inserire questa riga di codice:

Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("path/to/image.png")); 
ImageIcon icon = new ImageIcon(); 
setIconImage(icon.getImage()); 

Questo codice ottiene l'immagine dal percorso della classe, e lo restituisce come icona immagine, e poi imposta. Questo dovrebbe aggiungere l'icona dell'immagine all'applicazione. Se non lo fa, allora dimmi.

EDIT: Dopo che mi hai detto che non funzionava, ho deciso di fare un secondo crack ... Prima di tutto, metti le tue immagini in una cartella completamente separata. Io di solito chiamo questo/res. Successivamente, metti la tua immagine lì. Ora, per il caricamento, ho seguito un percorso completamente diverso. Ho deciso di utilizzare ImageIO invece del caricamento predefinito. Per caricare l'immagine, si utilizza questo codice:

try { 
    frame.setIconImage(ImageIO.read(new File("res/icon.png"))); 
} 
catch (IOException exc) { 
    exc.printStackTrace(); 
} 

ImageIO funziona molto meglio per il caricamento delle immagini. Se ancora non funziona, per favore dimmelo.

Se si desidera esportarlo come JAR, inserire una cartella con lo stesso nome utilizzato nel programma nella stessa directory del JAR.

+0

Questo non ha funzionato per me, ho anche fatto in modo che fosse in una cartella e non un pacchetto –

+0

Dove dovrei metterlo nel codice l'ho provato proprio sotto frame.setDefaultCloseOperation (JFrame .EXIT_ON_CLOSE); –

+0

Ho avuto la riga di codice proprio davanti a frame.setDefaultCloseOperation. In questo modo, sappiamo che l'icona è impostata prima che accada qualcos'altro –

2

Ad esempio, in un progetto NetBeans, creare una cartella di risorse nella cartella src.

Inserisci le tue immagini (jpg, ...) lì.

Sia che si utilizzi ImageIO o Toolkit (compresi getResource), è necessario includere un leader/nel percorso del file di immagine:

Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("/resources/agfa_icon.jpg")); 
setIconImage(image); 

Se questo codice è dentro la classe JFrame, si aggiunge l'immagine alla cornice come un'icona nella barra del titolo.

2

Questo funziona abbastanza bene per me. Basta aggiungere questo dopo aver creato il tuo JFrame.

try { 
    Image image = new ImageIcon("/icons/image.jpg").getImage(); 
    frame.setIconImage(image); 
}catch(Exception e){ 
    System.out.println("Application icon not found"); 
} 
+1

Si prega di evitare le risposte al solo codice. Dovresti sempre fornire una spiegazione del motivo del problema nella domanda, possibili soluzioni e codice di esempio (questo). Passa un po 'di tempo per aiutare le persone. –

0
  1. incollare l'icona dell'immagine (fav.png) nello stesso primo pacchetto,
  2. Scrivi seguente codice nel costruttore di JFrame:.

setIconImage (Toolkit.getDefaultToolkit() getImage (getClass() getResource ("fav.. png ")));

Nota: - fav.png è il nome dell'icona

0
this.setIconImage(new ImageIcon(getClass().getResource("/iconsfolder/iconsname.jpg")).getImage()); 
      // sets the Global icon for the system 

provare questo codice inserire dopo questo codice:

public void displayGUI() 
{ 
Problemi correlati