2012-05-24 10 views
5

Ok, quindi ho ottenuto un ImageIcon statico e l'immagine non viene visualizzata. Nello stesso programma che uso altra ImagesIcon ma non sono statici così quando li dichiaro di fare in questo modo:Esiste un'alternativa a getClass(). GetResource() per un ImageIcon statico

public ImageIcon blabla = new ImageIcon(getClass().getResource(blabla.png)); 

Ma se io dichiaro un ImageIcon statico non posso usare quella linea dal momento che non si può ottenere accesso a getClass() da un valore statico. In questo momento quelle immagini non vengono visualizzate usando questo:

public static ImageIcon blabla = new ImageIcon(blabla.png); 

Grazie per il vostro aiuto!

public static ImageIcon networkOfflineIcon = new ImageIcon("Images/networkOfflineIcon.png"); 
public static ImageIcon networkIcon = new ImageIcon("Images/networkIcon.png"); 
protected static JMenuItem jmiRemote = new JMenuItem(" Remote", networkOfflineIcon); 
//************************************************************************ 
public static void changeNetWorkStatus(boolean network_status)   
//************************************************************************ 
{ 
    if(network_status){ 
     Application.jmiRemote.setIcon(networkIcon); 
     Application.jmiRemote.setText("NetWork Online/Remote is On"); 
     Application.lockScreenRemote(); 

    }else if(!network_status){ 
     Application.jmiRemote.setIcon(networkOfflineIcon); 
     Application.jmiRemote.setText("NetWork Offline/Remote is Off"); 
     Application.unlockScreenRemote(); 
    } 
}//DOESNT CHANGE THE IMAGE 
//************************************************************************ 
+0

cercare di evitare cose come 'if (t == true)' e 'se (t == false) ', usa' if (t) 'e' if (! t) 'invece. – rlegendi

risposta

4

In un contesto statico, è possibile scrivere:

public ImageIcon imageIcon = new ImageIcon(MyClass.class.getResource("icon.png")); 

O, in alternativa provare ImageIO.read(new File("icon.png"))

+0

Funziona bene ora grazie per la soluzione rapida eviterò anche (t == true) – Alex

+0

Certo, lieto che abbia aiutato. – rlegendi

+0

'ImageIO.read' non è il miglior suggerimento dal momento che è quindi necessario gestire le eccezioni che genera. Vorrei attenermi al primo suggerimento e usare 'MyClass.class'. –

Problemi correlati