InicioHazlo Tu MismoTutorial para crear una tabla y mostrarla en java swing

Tutorial para crear una tabla y mostrarla en java swing

Hazlo Tu Mismo6/15/2012
Este posteo es un tutorial para crear una tabla que se vea en interfaz gráfica. 1 Definimos los atributos que son necesarios para una tabla. Un panel donde se encuentra la tabla (JPanel), Ejemplo: private JPanel p_tabla; La propia tabla (JTable), Ejemplo: private JTable table; Un arreglo de una dimensión donde se pondrán los nombres de las columnas Ejemplo: String cAgenda []= new String; Un arreglo de dos dimensiones que servirá para los datos de la tabla Ejemplo: String aAgenda[][]= new String; Algo que es opcional pero lo recomiendo es identificar en una variable descriptiva el nombre de la columna asignado su número de columna. Ejemplo: private int colNro = 0; private int colNombre = 1; private int colAlarma = 2; private int colEstado = 3; private int colResponsable = 4; private int colReclama = 5; private int colcount = 6; 2 Asignamos los nombres de las columnas cAgenda = "Número"; cAgenda = "Nombre"; cAgenda = "Alarma"; cAgenda = "Estado"; cAgenda = "Responsable"; cAgenda = "Reclama"; 3 Asignamos los datos. En mi caso extraje los datos de una base de datos por medio del RMI. Donde almacene el Result Set en rsReclamos. for (int m=0; m < rsReclamos.getRSRowCount();m++) { rsReclamos.setRSCursor(m); aAgenda = rsReclamos.getRSColContents( "nro" ).trim(); aAgenda = rsReclamos.getRSColContents( "f_name" ).trim() + " " + rsReclamos.getRSColContents("l_name" ).trim(); aAgenda = rsReclamos.getRSColContents("alarma" ).toString().trim().substring(0,16); aAgenda = estado(rsReclamos.getRSColContents("estado" ).trim()); aAgenda = rsReclamos.getRSColContents("responsable" ).trim(); aAgenda = rsReclamos.getRSColContents("reclama" ).trim(); } 4 Guardamos los nombres de las columnas y los datos en un modelo. Este modelo tiene 2 metodos. Uno es para marcar que no se puedan editar las columnas y el otro para definir el tipo de datos de las celdas, en este caso el tipo de datos son String. DefaultTableModel myModel = new DefaultTableModel(aAgenda ,cAgenda){ public boolean isCellEditable(int row, int col) { return false; } public Class getColumnClass(int column) { Class dataType = super.getColumnClass(column); dataType = String.class; return dataType; } }; 5 Opcionalmente se puede guardar el modelo en un sorter para poder ordenar las columnas a tu antojo. tk.TableSorter3 sorter = new tk.TableSorter3(myModel); 6 Instanciar la tabla con parametro el sorter y ahí podes utilizar métodos como el Renderer para darle color a las filas. table = new JTable (sorter){ public Component prepareRenderer(TableCellRenderer renderer, int rowIndex, int vColIndex) { Component c = super.prepareRenderer(renderer, rowIndex, vColIndex); if (rowIndex % 2 == 0) { if (!isCellSelected(rowIndex, vColIndex)) { c.setBackground( new Color(247,244,240)); } } else { // if not shaded, match the table's background if (!isCellSelected(rowIndex, vColIndex)) { c.setBackground(getBackground()); } } return c; } }; 7 Setiar parámetros como por Ejemplo: sorter.setTableHeader(table.getTableHeader()); table.setModel(sorter); table.setRowHeight(20); table.setCellSelectionEnabled(true); 8 Definir el tamaño de las columnas TableColumn tcNro = table.getColumnModel().getColumn(colNro); tcNro.setMinWidth(45); tcNro.setMaxWidth(45); TableColumn tcResponsable = table.getColumnModel().getColumn(colResponsable); tcResponsable.setMinWidth(115); tcResponsable.setMaxWidth(115); TableColumn tcNombre = table.getColumnModel().getColumn(colNombre); tcNombre.setPreferredWidth(250); TableColumn tcAlarma = table.getColumnModel().getColumn(colAlarma); tcAlarma.setMinWidth(110); tcAlarma.setMaxWidth(110); TableColumn tcEstado = table.getColumnModel().getColumn(colEstado); tcEstado.setMinWidth(70); tcEstado.setMaxWidth(70); TableColumn tcReclama = table.getColumnModel().getColumn(colReclama); tcReclama.setMinWidth(0); tcReclama.setMaxWidth(0); 9 Guardar la tabla en un scrollpane y definir el tamaño del scrollpane. JScrollPane scrollpane = new JScrollPane (table); table.setPreferredScrollableViewportSize( new Dimension (200,290)); 10 Opcionalmente podes darle una acción a un evento. table.addMouseListener( new MouseAdapter() { public void mouseClicked (MouseEvent e) { Point p = e.getPoint(); int row = table.rowAtPoint( p ); int column = table.columnAtPoint( p ); if (row == -1 || column == -1) { return; } } }); 11 Guardar el scrollpane en un panel a parte y luego guardar ese panel en el panel principal donde vas a mostrar la tabla p_tabla = new JPanel( new BorderLayout()); p_tabla.removeAll(); p_tabla.add(scrollpane, BorderLayout.NORTH); p_tabla.revalidate(); p_tableAgenda.removeAll(); p_tableAgenda.add(p_tabla, BorderLayout.NORTH); p_tableAgenda.setBorder( new BevelBorder(BevelBorder.RAISED )); p_tableAgenda.revalidate(); p_tabla.revalidate(); this.repaint();
Datos archivados del Taringa! original
10puntos
936visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

a
aliaspool🇦🇷
Usuario
Puntos0
Posts2
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.