JLabel Icono no mostrado

Estoy tratando de mostrar una imagen en mi aplicación ...

    picture = new JLabel("No file selected");
    picture.setFont(picture.getFont().deriveFont(Font.ITALIC));
    picture.setHorizontalAlignment(JLabel.CENTER);

    scrollPane.setViewportView(picture);

    ImageIcon icon = new ImageIcon("map.jpg");
    picture.setIcon(icon);
    if (picture.getIcon() != null)                   // to see if the label picture has Icon
        picture.setText("HERE IS ICON");

Cuando ejecuto ese código, solo se muestra el texto "HERE IS ICON". Lo siento si esta pregunta suena tan tonta, pero realmente no tengo idea de por qué no se muestra el icono de la imagen :(

Respuesta 1

Usted puede hacer eso:

ImageIcon icon = createImageIcon("map.jpg", "My ImageIcon");

if (icon != null) {
    JLabel picture = new JLabel("HERE IS ICON", icon, JLabel.CENTER);
    picture.setFont(picture.getFont().deriveFont(Font.ITALIC));
    picture.setHorizontalAlignment(JLabel.CENTER);

    scrollPane.setViewportView(picture);
}

El método createImageIcon (utilizado en el fragmento anterior) encuentra el archivo especificado y devuelve un ImageIcon para ese archivo, o nulo si ese archivo no se pudo encontrar. Aquí hay una implementación típica:

/** Returns an ImageIcon, or null if the path was invalid. */
protected ImageIcon createImageIcon(String path,
                                           String description) {
    java.net.URL imgURL = getClass().getResource(path);
    if (imgURL != null) {
        return new ImageIcon(imgURL, description);
    } else {
        System.err.println("Couldn't find file: " + path);
        return null;
    }
}
Respuesta: 2

Debe asegurarse de que map.jpg exista como un archivo. Si desea estar seguro (solo con fines de prueba), intente utilizar la ruta completa. De la forma en que lo tiene, la ruta es relativa al directorio de inicio de la aplicación.

Puede verificar si existe con esto:

System.out.println(new java.io.File("map.jpg").exists());
Respuesta: 3

Hola, estoy teniendo problemas con una aplicación de Android que estoy creando a partir de un tutorial en línea. Sigue fallando cuando intento ejecutarla con la excepción mencionada. Realmente agradecería algo de ayuda sobre cómo ...

Tengo las siguientes 2 clases: clase Animal {public static void staticMethod (int i) {System.out.println ("Animal: static -" + i); } public void instanceMethod (int i) {...

He desarrollado una aplicación web (que llamaré W) utilizada junto con 3 aplicaciones diferentes (A, B y C). W necesita diferentes dependencias en función de qué aplicación se usa junto con (para ...

Mientras leía el 'ajuste de rendimiento Java' de Jack Shirazi, me encontré con la siguiente declaración: "La instancia y las variables estáticas pueden ser hasta un orden de magnitud más lentas para operar en comparación con ...