Look and feel

Hola espero me puedan ayudar con el tema de look and feel en Windows me funciona muy bien, pero ahora estoy en ubuntu programando en ecliper el codigo es el mismo que tengo en windows tambien con eclipse ... Bueno el caso es que estando en Eclipse con ubunto me da error
el error es " com canont be resolved to a type"  este codigo esta en la clase main y subraya en rojo  a com indicando alli el error... Si me pueden ayudar de verdad gracias... NOTA : SI hay otra forma o como hacerlo en eclipse estando en ubunto que estare haciendo mal
try {
            UIManager.setLookAndFeel(new com.birosoft.liquid.LiquidLookAndFeel());
            com.birosoft.liquid.LiquidLookAndFeel.setLiquidDecorations(true);
        } catch (UnsupportedLookAndFeelException e) {
            e.printStackTrace();
        }

1 Respuesta

Respuesta
1
Por el error, lo primero que pensaría es que no te esté encontrando el liquidlnf.jar
Quizás al cambiar de entorno te faltó añadirlo en el CLASSPATH.
.
Otra cosa, personalmente me gusta más usar el método .setLookAndFeel (String nombre_de_la_clase);
UIManager.setLookAndFeel("com.birosoft.liquid.LiquidLookAndFeel");
public static void setLookAndFeel(String className)  throws ClassNotFoundException,
           InstantiationException,
           IllegalAccessException,
           UnsupportedLookAndFeelException
saludos
Saludos, gracias eso lo arregle funciona perfecto... una nueva pregunta estoy capturando un código barras a través de un lector... eso esta chevere funciona perfecto al leer el código de barras .., Leeo de la BD la información del empleado me falta saber como Guardar la Foto del empleado y llamarla Si me puedes orientar al respecto Gracias ...
Puedes hacerlo de dos formas:
La forma más simple sería guardar la imagen físicamente en un directorio la imagen y crear un campo en la tabla "Empleados" de tipo varchar (o el equivalente en el gestor de base de datos que uses) donde se almacena el nombre de la imagen. Para mostrar la imagen crearías un ImageIcon y la podrías mostrar en un JLabel.
ImageIcon imagen = new ImageIcon("ruta_absoluta//" + nombre_imagen);
JLabel label = new JLabel(imagen);
.
.
Otra forma sería guardar la imagen en la propia base de datos (creo que es esto lo que pretendes). Tendrías que tener un campo de tipo BLOB (binary long objects) o el equivalente la base de datos que uses.
En este caso para guardar la imagen en un blob, el código tendría que ser parecido a este, suponiendo que has creado la conexion "conn" a la bd y que tienes la imagen en un File "ficheroImagen", un resulset "rs" y una Tabala EMPLEADOS con tres campos (id, nombre, foto);
.

//Para Guardar la imagen

InputStream isImagen = new FileInputStream(ficheroImagen);
PreparedStatement pstmt = conn.prepareStatement("insert into EMPLEADOS values(?, ?, ?)");
pstmt.setInt(1, id);

pstmt.setString(2, nombreEmpleado);
pstmt.setBinaryStream(3, isImagen, (int)(isImagen.length()));

.
// Para recuperar la imagen
Blob blob = rs.getBlob(1);
ImageIcon imagen = new ImageIcon(blob.getBytes(3, (int)blob.length()));

.
.
Modifica el código según las necesidadesque tengas.
La opción de guardar en un blob es elegante, pero aumenta de tamaño la bd una burrada. Yo me decantaría por la primera opción si es posible.
.
Un saludo


Perdona, la línea:
pstmt.setBinaryStream(3, isImagen, (int)(isImagen.length()));
lo correcto sería:
pstmt.setBinaryStream(3, isImagen, (int)(ficheroImagen.length()));
.
Y otro pequeño error:
Blob blob = rs.getBlob(3);
Hemos supuesto que el campo Blob está en la tercera posición...
De nuevo.
public ImageIcon MostarFoto(String cadena) {
        String name;
        String cedula;
        ImageIcon dfoto = null;
            try {
                rs=Consulta(cadena);    
                name=rs.getString("name").trim();
                cedula=rs.getString("cedula").trim();                                                    
                ObjectInput in;
                System.out.println(name+cedula);
                Blob blob;
                blob = rs.getBlob("foto");
                dfoto = new ImageIcon(blob.getBytes(3, (int)blob.length()));
                System.out.println(name+cedula);
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        return dfoto;
    }
Hola, este es código que estoy reealizando para llamar la foto de la base de datos y me da este error java.sql.SQLException: "pos" + "length" arguments can not be larger than the BLOB's length.
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1056)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
El error se encuentra aquí:
dfoto = new ImageIcon(blob.getBytes(3, (int)blob.length()))
lo correcto es ésto:
dfoto = new ImageIcon(blob.getBytes(1, (int)blob.length()))
.
Perdona, en la segunda corrección que hice se me olvidó incluir esta línea. Es lo que tiene escribir rápido...
Con esto recuperas el blob sin problemas.
Si cambien ese valor y funciona perfecto gracias deberás, una cosa más que representa ese valor ...
Me alegro de haberte podido ayudar.
El objeto blob internamente tiene un array de bytes donde guarda la información que recoges en la línea    blob = rs.getBlob("foto");
.
El método getBytes de la clase Blob:
getBytes  byte[] getBytes(long pos, int length)  throws SQLException
lo que hace es devolverte la parte de ese array de bytes desde la posición del primer parámetro pos hasta la posición pos + length.
length es la longitud total del array en bytes.
Lo curioso de este método es que el primer byte tiene índice 1, en lugar de índice 0 como en cualquier otro tipo de array.
Un saludo, y acuerdarte de finalizar la pregunta
Una pregunta más antes de finalizar he estado leyendo como capturar la foto de la cámara instalada al equipo y bueno habla que debo instalar como una librería de sun para poder importar javax. Media... lo cierto no encuentro ese jar ...
La javamedia está en:
http://java.sun.com/products/java-media/jmf/index.jsp
.
Es un bundle que hicieron los de sun con las clases multimedia y se instala por separado del jsdk. Lo llamaron JMF (java media framework), Simplemente lo instalas y añades al proyecto los .jar del directorio /lib donde lo hayas instalado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas