▷ JAVA-Tips: ¿Cómo asignar un color de fondo a las celdas de un JTable?
En esta ocasión realizaremos un corto y sencillo tip de JAVA, que nos ayudará a darle un toque diferente a nuestras tablas, ya que nos permitirá atribuirle un color de fondo a todas las celdas; es decir, cambiaremos el tono que traen por defecto (blanco), dándole un aspecto llamativo a nuestro JTable y a la presentación de los registros del mismo.
Antes de comenzar, hay que tener muy en cuenta, que muchas veces los colores que apliquemos al fondo de las celdas, no harán un buen contraste con el color de la fuente y/o letra de los datos que estas contienen, por lo que en estos casos se hace muy conveniente y casi que una obligación, configurar de igual manera el color de las letras que hay en nuestra tabla.
Al igual que en otros capítulos de JAVA-Tips, realizaremos los siguientes pasos, utilizando NetBeans IDE (si aún no lo tienes puedes dirigirte a nuestra Zona de descargas, y dar clic en el icono "NetBeans IDE"):
Antes de comenzar, hay que tener muy en cuenta, que muchas veces los colores que apliquemos al fondo de las celdas, no harán un buen contraste con el color de la fuente y/o letra de los datos que estas contienen, por lo que en estos casos se hace muy conveniente y casi que una obligación, configurar de igual manera el color de las letras que hay en nuestra tabla.
Al igual que en otros capítulos de JAVA-Tips, realizaremos los siguientes pasos, utilizando NetBeans IDE (si aún no lo tienes puedes dirigirte a nuestra Zona de descargas, y dar clic en el icono "NetBeans IDE"):
TUTORIAL EN VIDEO
¡Suscríbete Ahora!
🔻
TUTORIAL EN IMÁGENES
1-Seleccionaremos el JTable, dando clic directamente sobre el mismo, o seleccionándolo desde la ventana "Navegador" (Inspector) de NetBeans IDE, ubicada generalmente en la parte inferior izquierda de nuestra pantalla:
2-Nos dirigiremos a la ventana "Properties" (Propiedades), la cual se encuentra ubicada generalmente en la parte inferior derecha de nuestra pantalla; a continuación, damos clic en el botón "..." de la propiedad "background" (fondo):
3-Nos aparecerá una nueva ventana, en la cual podremos observar una paleta de colores donde escogeremos el color que queremos asignarle al fondo de las celdas del JTable (tabla), para ello damos clic sobre el recuadro que representa el tono deseado, y posteriormente damos clic en el botón "OK".
Si observamos muy bien, en la ventana que nos encontramos, veremos una serie de pestañas (Muestras, HSV, HSL, RGB, CMYK, Paleta AWT, Paleta Swing, y Paleta del Sistema), las cuales consisten en las distintas formas u opciones que se nos brinda para escoger una tonalidad específica:
4-Ahora sólo bastará con que ejecutemos nuestro proyecto, y observaremos la nueva apariencia de las celdas de nuestra tabla, en cuanto a color y/o tonalidad se trata:
Filas de distintos colores...
Hay ciertas circunstancias o casos, en los cuales necesitamos que las filas no tengan el mismo color de fondo, esto a razón de un determinado valor de una columna en específico; sin embargo, aquí ya nos tocaría hacer uso de condicionales, lo que significa adentrarnos en la parte del código, por ello te invito a que revises el artículo "Código JAVA: Colorear filas de una Tabla", en el cual aprenderás a realizar dicha modificación en tu JTable, sin ningún inconveniente.
Si te perdiste el artículo anterior de JAVA-Tips, no dejes de revisarlo, ya que aprenderás algo nuevo e importante como: "Emplear campos de fecha en tus formularios".
Te invitamos a seguir el Curso de JAVA: Cómo lo hago en JAVA?, aquí en UH T.I.S tu Blog de tecnología.
Suscríbete a nuestro blog, vía Email o RSS; además puedes seguirnos a través de nuestras redes sociales como: Facebook, Twitter, YouTube y Google+.
Si te fue de gran ayuda esta información, no olvides compartirla con tus amigos.
Si tienes dudas o sugerencias al respecto, abajo puedes dejarnos tus comentarios.
Bendiciones...
amigo me gustaría saber como colorear una sola celda e logrado hacer que me pinte el jtable dependiendo de la fecha pero solo quiero pintar una sola celda te dejo mi código para que me ayudes
ResponderBorrarString fechas;
private void tbldatosMouseClicked(java.awt.event.MouseEvent evt) {
if(evt.getButton()==1){
int fila=tbldatos.getSelectedRow();
try {
String sql="select * from dd where id="+tbldatos.getValueAt(fila, 0);
PreparedStatement pst =cn.prepareStatement(sql);
ResultSet rs=pst.executeQuery(sql);
rs.next();
nombre.setText(rs.getString("nombre"));
fechas=(rs.getString("fechadeentrega"));
sexo.setSelectedItem(rs.getString("sexo"));
dia.setSelectedItem(rs.getString("dia"));
} catch (Exception e) {
}
}
try{
SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy");
String fecha1 = fechas;
Date fechaActual = new Date();
String fechaSistema=sdf.format(fechaActual);
Date date1 = sdf.parse(fecha1);
Date date2 = sdf.parse(fechaSistema);
System.out.println(sdf.format(date1));
System.out.println(sdf.format(date2));
if(date1.compareTo(date2)>0){
tbldatos.setBackground(Color.YELLOW);
System.out.println("Date1 is after Date2");
}else if(date1.compareTo(date2)<0){
tbldatos.setBackground(Color.red);
System.out.println("Date1 is before Date2");
}else if(date1.compareTo(date2)==0){
tbldatos.setBackground(Color.GREEN);
JOptionPane.showMessageDialog(null, "hoy es eldia de entrega");
System.out.println("Date1 is igual to Date2");
}else{
System.out.println("How to get here?");
}
}catch(ParseException ex){
ex.printStackTrace();
}
}
Saludos estimado, te regalo este link en el cual hay un código que te puede ayudar a colorear la celda que necesitas:
Borrarhttp://codigosparadesarrolladores.blogspot.com/2014/10/codigo-java-colorear-filas-de-una-tabla.html
Bendiciones...
gracias
ResponderBorrar