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.
y el resultado es este:
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 https://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!!!
¿Qué es SCRUM? SCRUM es un modelo de referencia que define un conjunto de prácticas y roles, y que puede tomarse como pu[...]
Tiempo atras me pidieron un ejemplo de como realizar un reporte con iReport tipo factura, recibo o como le llamen, compl[...]
En este tutorial realizaremos una introducción al diseño de interfaces gráficas en JavaFX y Scene Builder, así también v[...]
Continuando con los tutoriales sobre LibGDX (Librería para el desarrollo de videojuegos), en esta ocasión veremos como e[...]
¿Que son los archivos JNLP? Java Network Launching Protocol (JNLP) es una especificación usada por Java Web Start. Esta[...]
Una Prueba Unitaria, es una forma de comprobar que nuestro código, hace lo que se supone debe hacer; es decir, se asegur[...]