Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

Ayuda con la carga de imagenes en Netbeans 6.9 y Ubuntu 10.10

juandejesuss007

Bovino Milenario
Desde
19 Mar 2008
Mensajes
1.581
Que tal compañeros

les escribo porque tengo un problema que me esta poniendo los pelos de punta, estoy haciendo un splash para mi sistemita en Java, todo bien, carga y así pero cuando le pongo una imagen, no la jala no sé porque, solo si le pongo la ruta completa (Absoluta) pero si le pongo ruta Relativa nada que me carga y no se que hacer, la imagen está dentro de mi proyecto en un paquete (folder) llamado Images, la foto se llama "DesarrollaconMSDN.jpg" y la clase que se encarga de cargar el splash es la clase "SplashImage.java" que como ven esta dentro del paqueteprincipal. les adjunto la foto

proyectowi.png


Ahora les voy a compartir el codigo de la clase SplashImage.java

Código:
package paqueteprincipal;

import java.awt.*;
import javax.swing.*;

/**
 *
 * @author jesus
 */
public final class SplashImage {

    private JLabel       splashLabel;//aqui colocamos el splash screen
    private JProgressBar progreso;   //este sera el progreso de la barra
    private JWindow      splashScreen;//esta sera la ventana del Splash

    private ventanaprincipal ventana;//ventana de trabajo

    public  SplashImage(){

        try{
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        }
        catch(Exception e){
            JOptionPane.showMessageDialog(progreso, e);
        }

        crearSplashScreen();

        //Arranca el splash
        splashScreen.setVisible(true);

        //Iniciar el progreso
        hiloProgreso hilo=new hiloProgreso();
        hilo.start();

        //Creamos ventana de trabajo
        ventana = new ventanaprincipal();
        ventana.setLocationRelativeTo(null);
        ventana.setVisible(true);
        splashScreen.setVisible(false);

        //Libera splash de la memoria
        splashScreen = null;
        hilo = null;


    }

    public void crearSplashScreen(){


        //inicializa "splashLabel" con la ruta de la imagen splash
        [B]splashLabel = new JLabel(new ImageIcon("../../../../../../home/jesus/Documentos/NetBeansProjects/MSDNVideo/src/Images/DesarrollaconMSDN.jpg"));[/B]

        //inicializa el progreso
        progreso = new JProgressBar();
        progreso.setBorderPainted(true);
        progreso.setForeground(new Color(50,50,153,100));

        //mostrar el valor del avance
        progreso.setStringPainted(true);
        splashScreen = new JWindow();

        splashScreen.setLocationRelativeTo(null);
        splashScreen.setLayout(new BorderLayout());
        splashScreen.add(splashLabel,BorderLayout.CENTER);
        splashScreen.add(progreso,BorderLayout.SOUTH);

        //empaqueta todo
        splashScreen.pack();

    }


    public void pausa(int mlSeg){

        try{//Pausa para el splash
            Thread.sleep(mlSeg);
        }
        catch(Exception e){}
    }

    class hiloProgreso extends Thread{

        public hiloProgreso(){
            super();
        }

        public void run(){
            for(int i = 1;i<=100;i++){
                progreso.setValue(i);
                pausa(5);
            }
        }

    }

    public static void main (String args[]){
        new SplashImage();
    }

}
les puse en negrita lo importante que me esta jodiendo, si pongo ruta completa

splashLabel = new JLabel(new ImageIcon("../../../../../../home/jesus/Documentos/NetBeansProjects/MSDNVideo/src/Images/DesarrollaconMSDN.jpg"));

me sale correctamente el splash con su barra de progreso y todo

pantallazonb.png


Hasta ahi todo bien, el problema está en cuando compilo el proyecto, lo cambio de ruta o lo que sea, todo funciona bien, conexion, clases etc...


si le cambio el codigo a como mencionan los manuales así
pantallazo2ol.png


el splash aparece así:
pantallazomk.png




solo con la barra de progreso, pero la imagen nunca me la carga, tengo ese mismo problema con los reportes hechos con ireports, nomas no los carga si le pongo su ruta correctamente, tengo que poner mi direccion completa, pero si me quisiera llevar el sistema a otra computadora obviamente no funcionaria ya que el usuario no se llama Jesus, de antemano muchas gracias por su ayuda
 
bueno en vista que nadie sabía la solución, acá la pongo

solo cambié lo que había subrayado en negro por esto

splashLabel = new JLabel();
splashLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Images/DesarrollaconMSDN.jpg")));

y listo ahora funciona no importa desde que ubicación, y tanto en Windows como en Linux
 
Volver
Arriba