Tabla para inventarios de Entradas y Salidas

Creado por jc mouse Martes, noviembre 12, 2013

A veces navegando en la internet buscando novedades , investigando o simplemente perdiendo el tiempo :) se encuentran cosas interesantes, una de esas fue una aplicación para el control de inventarios bastante completo y con una interfaz sencilla pero intuitiva y agradable, no digo que programa es porque es de pago así que no vale la pena para los seguidores del software libre y yo no le hago propaganda gratis a nadie 3:) , en fin entre sus formularios me gusto una tabla para mostrar el informe de entradas y salidas del inventario asi que como no tenia nada que hacer me propuse imitar esa interfaz usando el lenguaje Java.

La tabla es la siguiente.

table in out

y el resultado es este:

inventario java

No se ustedes pero yo estoy conforme con el resultado :)

En este post no enseñare paso a paso como se hace esta tabla, porque irónicamente no tengo mucho tiempo para hacer un tutorial pero quería compartir el código antes de que se me olvide y se quede en el baúl de los recuerdos :) pero si les digo que el código utilizado para personalizar el JTable se encuentra en esta misma web, usen el buscador :) si encuentran algo que no entiendan aunque lo dudo, todo esta muy sencillo de entender para un programador con un nivel intermedio en el lenguaje java :)

Para no hacer el post muy cortito, a continuación la clase “CellRenderer” encargada de personalizar las celdas del JTable según el valor de cada una de ellas:

01 package com.bolivia.app;
02 import java.awt.Color;
03 import java.awt.Component;
04 import java.awt.Font;
05 import javax.swing.ImageIcon;
06 import javax.swing.JLabel;
07 import javax.swing.JTable;
08 import javax.swing.table.DefaultTableCellRenderer;
09 /**
10  * @web http://www.jc-mouse.net
11  * @author Mouse
12  */
13 public class CellRenderer extends DefaultTableCellRenderer {
14  
15     private String tipo="text";
16     private Font courier = new Font( "Courier New",Font.PLAIN ,12 );
17     private Font normal = new Font( "Arial",Font.PLAIN ,12 );
18     private Font bold = new Font( "Arial",Font.BOLD ,12 );
19     private JLabel label = new JLabel();
20     private ImageIcon salida = new ImageIcon(getClass().getResource("/com/bolivia/app/images/salida.jpg"));
21     private ImageIcon entrada = new ImageIcon(getClass().getResource("/com/bolivia/app/images/entrada.jpg"));
22     
23     /** Constructor de clase
24  * @param tipo String
25  * Ej.: "text", "text center", "hour" , "num" , "icon"
26  */
27     public CellRenderer( String tipo )
28     {
29         this.tipo = tipo;
30     }
31     
32     
33     @Override
34     public Component getTableCellRendererComponent ( JTable table, Object value, boolean selected, boolean focused, int row, int column )
35     {   
36         if (selected) {                
37             this.setBackground( new Color( 50, 153 , 254) );                        
38         }
39         else
40         {
41             this.setBackground(Color.white);
42         }
43         
44         if( tipo.equals("hour"))
45         {
46             this.setHorizontalAlignment( JLabel.CENTER );
47             this.setText( (String) value );
48             this.setForeground( (selected)?new Color(255,255,255):new Color(0,0,0) );            
49             this.setFont(courier);            
50             return this;
51         }
52                 
53         if( tipo.equals("text"))
54         {
55             this.setHorizontalAlignment( JLabel.LEFT );
56             this.setText( (String) value );
57             this.setForeground( (selected)?new Color(255,255,255):new Color(0,0,0) );            
58             this.setFont(normal);            
59             return this;
60         }
61         
62         if( tipo.equals("text center"))
63         {
64             this.setHorizontalAlignment( JLabel.CENTER );
65             this.setText( (String) value );
66             this.setForeground( (selected)?new Color(255,255,255):new Color(0,0,0) );            
67             this.setFont(normal);            
68             return this;
69         }
70                 
71         if( tipo.equals("num"))
72         {           
73             this.setHorizontalAlignment( JLabel.CENTER );
74             this.setText( (String) value );            
75             this.setForeground( (selected)?new Color(255,255,255):new Color(32,117,32) );            
76             this.setFont(bold);            
77             return this;   
78         }        
79         
80         if( tipo.equals("icon"))
81         {
82             if( String.valueOf(value).equals("IN") )
83             {
84                 label.setIcon(entrada);
85             }
86             else if( String.valueOf(value).equals("OUT") )
87             {
88                 label.setIcon(salida);
89             }
90             return label;
91         }
92         
93         return this;
94     }
95 }

Código Fuente completo del proyecto realizado en Netbeans 7.3 en descarga directa en este enlace pobretón

Enjoy!!!

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!

Sobre el autor y el sitio web

Yo soy yo :) Mouse o como algunos de ustedes me llaman 'El Cochinote', Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.

Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye

Enjoy! :)

ENTRADAS QUE TE PUEDEN INTERESAR

7 comentarios en “Tabla para inventarios de Entradas y Salidas”

  1. christian dice:

    Hola jc-mouse:
    Pude terminar el proyecto de control de stock gracias , por que como ejercicio esta bien
    me sale algunos errores y espero resolverlos.
    Gracias

  2. Antonio dice:

    Muy buenas. Me sirvió de mucho tu post, pero tengo un problema. Mi web resulta que tiene varías páginas, por lo que tengo que pasar el idioma por cada pagina para que las traduzca.

    No conseigo hacer que cada pagina se traduzca, en cuanto cambio de sección vuele al idioma por defecto.

  3. Yesid dice:

    Como consigo El Codigo de la Aplicacion

  4. Luis Miguel dice:

    Hola amigo jc-mouse eh estado viendo todos tus post en tu web y cada uno de ellos me han sido de gran ayuda. Soy nuevo en esto y mi profesor nos a puesto como tarea hacer una aplicación que sirva para enviar correos electros y a su vez que también permita enviar archivos adjuntos tu ejemplo es excelente pero me gustaría que me ayudaras con el envió de los archivos adjuntos te estaría muy agradecido por tu ayuda.

    1. Abner dice:

      Hola tengo un ejemplo te podría ayudar contactame vía correo electrosoftservicios@gmail.com

  5. Dago dice:

    Hola grandes aplicaciones he encontrado en este sitio y muy bien desarrollado y explicado cada ejemplo…. he intentando implementar modificaciones a este ejemplo de sqlite he utilizado el metodo db.update y no consigo hacerlo funcionar quiza alguien pudiera ayudarme?….. Gracias de antemano

  6. GustavoMG dice:

    Hola JC-Mouse, como todos tus posts, esta muy bien. Gracias por tus aportes… El enlace de descarga me aparece como caido. Igual gracias! Saludos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *


*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Comparte lo que sabes

Categorias

Android Bolivia

Bandera en Alto

Ultimas entradas

Radio.Garden es un proyecto interactivo desarrollado por el Instituto Holandés para el Sonido y la Visión en cooperación...

Una cola doblemente terminada o deque es una estructura de datos lineal que permite insertar y eliminar elementos por am...

Cada día aparecen cientos sino es que miles de nuevos sitios web en el mundo, pero son muy pocos las webs verdaderamente...

En este post conoceremos una forma de representar grafos mediante una Matriz de Adyacencia y un ejemplo básico de este e...

Web amigas