2012-05-24 27 views
5

Ok, así que obtuve un ImageIcon estático y la imagen simplemente no aparece. En el mismo programa que utilizo otra ImagesIcon pero no son estáticos por lo que cuando les declaro lo hago de esta manera:¿Existe una alternativa a getClass(). GetResource() para un ImageIcon estático

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

Pero si declaro una ImageIcon estático no puedo usar esa línea, ya que no se puede obtener acceso a getClass() desde un valor estático. En este momento esas imágenes no se muestran con esto:

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

¡Gracias por su ayuda!

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

tratar de evitar cosas como 'si (t == true)' y 'si (t == falso) ', use' if (t) 'y' if (! t) 'en su lugar. – rlegendi

Respuesta

4

En un contexto estático, puede escribir:

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

O, alternativamente, tratar ImageIO.read(new File("icon.png"))

+0

Funciona bien ahora gracias por la solución rápida que también evitaré (t == verdadero) – Alex

+0

Claro, me alegro de que haya ayudado. – rlegendi

+0

'ImageIO.read' no es la mejor sugerencia ya que entonces necesita manejar las excepciones que arroja. Me quedaría con la primera sugerencia y usar 'MyClass.class'. –

Cuestiones relacionadas