¿Qué es javax.swing.JTable y cómo se utiliza para mostrar tablas en Java?

| Última modificación: 13 de enero de 2025 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Me reí de mí mismo cuando pensé que crear una tabla para mostrar información de usuarios era pan comido, pero me di de frente con la realidad cuando no pude organizar los datos. La clase javax.swing.JTable literalmente me salvó la vida, porque me permitió mostrar y gestionar tablas con datos de forma sencilla y profesional. Por eso quiero que aprendas a usarla para crear tablas funcionales y visualmente atractivas en tus aplicaciones. Y no te preocupes, que también te diré cómo mostrar, organizar y hasta editar datos con facilidad.

javax.swing.JTable qué es

¿Qué es javax.swing.JTable?

Me imagino que has usado Excel, ¿cierto? Pues por ahí va pintando la cosa con javax.swing.JTable. Resulta que es una clase que organiza datos en filas y columnas, muy buena para mostrar información tabular de forma clara y manejable. Lo que la hace tan diferente de una hoja de cálculo es que JTable te deja personalizar cada aspecto según las necesidades de tu proyecto.

Características principales de JTable

  • Visualización y edición de datos: Permite mostrar y modificar datos directamente en la tabla.
  • Altamente personalizable: Puedes ajustar colores, fuentes, tamaños y comportamiento.
  • Integración con modelos de datos: Se conecta fácilmente con objetos para manejar grandes cantidades de datos.

Constructores comunes de javax.swing.JTable

No olvides que al crear una instancia de javax.swing.JTable, puedes usar los siguientes constructores:

  1. JTable(): Con este puedes crear una tabla vacía.
  2. JTable(int rows, int cols): Define una tabla con un número específico de filas y columnas.
  3. JTable(Object[][] data, Object[] columnNames): Crea una tabla con datos y nombres de columna predefinidos.

Métodos esenciales en JTable

Te dejo una breve lista de algunos métodos importantes que te ayudarán a manejar bien la clase JTable:

  • addColumn(TableColumn column): Agrega una columna al final de la tabla.
  • clearSelection(): Deselecciona todas las celdas seleccionadas.
  • setValueAt(Object value, int row, int col): Establece un valor en una celda específica.
  • editCellAt(int row, int col): Habilita la edición de una celda en la posición dada.

¿Cómo usar javax.swing.JTable? Ejemplos prácticos

Cómo hacer una tabla básica con datos predefinidos

Vamos a crear una tabla simple con datos iniciales, como una lista de productos:

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

public class SimpleJTableExample {
public static void main(String[] args) {
JFrame frame = new JFrame("Tabla básica");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// Datos de ejemplo
String[][] data = {
{"1", "Café", "2.50"},
{"2", "Té", "1.80"},
{"3", "Jugo", "3.00"}
};

// Nombres de las columnas
String[] columnNames = {"ID", "Producto", "Precio"};

// Creando la tabla
JTable table = new JTable(data, columnNames);
JScrollPane scrollPane = new JScrollPane(table);

frame.add(scrollPane, BorderLayout.CENTER);
frame.setSize(400, 200);
frame.setVisible(true);
}
}

Como puedes ver, esta tabla te muestra tres columnas con datos básicos de productos. Usamos JScrollPane para añadir una barra de desplazamiento automática.

Editando celdas en tiempo de ejecución

Lo que haremos aquí será crear una tabla editable donde el usuario puede cambiar los datos directamente.

import javax.swing.*;
import javax.swing.table.DefaultTableModel;

public class EditableJTableExample {
public static void main(String[] args) {
JFrame frame = new JFrame("Tabla editable");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// Modelo de datos para permitir edición
DefaultTableModel model = new DefaultTableModel(
new Object[][] {
{"Juan", "25", "Ingeniero"},
{"Ana", "30", "Diseñadora"}
},
new String[] {"Nombre", "Edad", "Profesión"}
);

JTable table = new JTable(model);
JScrollPane scrollPane = new JScrollPane(table);

frame.add(scrollPane);
frame.setSize(400, 200);
frame.setVisible(true);
}
}

Mira que el modelo DefaultTableModel te permite modificar las celdas y gestionar los datos fácilmente. A mí me gusta mucho para las aplicaciones interactivas.

Personalizando la apariencia

Ahora vamos a personalizar los colores y fuentes de una tabla para mejorar su aspecto.

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

public class StyledJTableExample {
public static void main(String[] args) {
JFrame frame = new JFrame("Tabla personalizada");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

String[][] data = {
{"A001", "Computadora", "750"},
{"A002", "Monitor", "150"},
{"A003", "Teclado", "25"}
};

String[] columnNames = {"Código", "Producto", "Precio"};

JTable table = new JTable(data, columnNames);
table.setBackground(Color.LIGHT_GRAY);
table.setForeground(Color.BLUE);
table.setFont(new Font("Arial", Font.BOLD, 14));
table.setRowHeight(25);

JScrollPane scrollPane = new JScrollPane(table);
frame.add(scrollPane);

frame.setSize(500, 300);
frame.setVisible(true);
}
}

Como ves, un diseño atractivo mejora la experiencia del usuario, haciendo tu tabla más profesional y fácil de leer. ¿No quieres esto en tus proyectos?

Consejos para que uses bien JTable

  1. Conecta con modelos de datos: Lo mejor es que uses modelos como DefaultTableModel para manejar grandes volúmenes de información.
  2. Usa barras de desplazamiento: Siempre añade un JScrollPane para evitar problemas de visualización.
  3. Personaliza: Ajusta colores, fuentes y tamaños para hacer tus tablas más atractivas.

Ya lo sabes. Javax.swing.JTable es excelente para organizar y mostrar datos en tus aplicaciones Java. Desde tablas simples hasta modelos complejos, puedes adaptar su funcionalidad a tus necesidades. ¿Listo para ponerlo en práctica y crear tablas que impresionen a tus usuarios?

¿Te imaginas crear aplicaciones completas con interfaces gráficas profesionales y funcionales? En el Bootcamp de Java Full Stack de KeepCoding aprenderás todo sobre javax.swing.JTable y muchas otras herramientas para convertirte en un desarrollador experto. ¡No pierdas la oportunidad de transformar tu carrera y tu futuro!

Ramón Maldonado

Full Stack Developer y Responsable de Formación base en KeepCoding.

Posts más leídos