Tutorial JTable

Para empezar a usar esta herramienta primero debes saber en que consiste, es decir, ¿qué es? ¿para qué sirve?. Para ello, voy a hacer una pequeña definición de la clase JTable y luego explicar su uso y otras aplicaciones o clases ligadas a ella.


JTable es una herramienta visual de Java que sirve para poder dibujar tablas, con sus respectivas filas y columnas en donde puedes ingresar el dato que tu desees, como por ejemplo: tu nombre, tu rut, tu apellido, entre otros.

Para poder usar bien la herramienta JTable, es necesario trabajar con otras herramientas que están vinculadas a su desarrollo, para poder así tener un mejor funcionamiento en el momento de implementar una tabla. Estas herramientas son:

1.- DefaultTableModel
2.- JScrollPane
3.- JFrame
4.- JPanel
5.- awt(abstract windows toolkit o herramienta de ventana abstracta)

El DefaultTableModel es una clase que implementa TableModel que contiene todos los métodos necesarios para modificar datos en su interior, añadir filas o columnas y darle a cada columna el nombre que se desee. Para utilizar DefaultTableModel debemos importarla y luego declararla para luego poder usar la clase JTable, un ejemplo es:

import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

DefaultTableModel modelo = new DefaultTableModel();
JTable tabla = new JTable (modelo);

La siguiente herramienta es el JScrollPane, es una clase importada en swing que permite asociarle una pequeña vista o ventana deslizable o corrediza, que permite solo que se vea una parte de dicho complemento en la tabla. Para poder usarlo, importamos la clase y luego la declaramos, un ejemplo sería:

import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.JScrollPane;

DefaultTableModel modelo = new DefaultTableModel();
JTable tabla = new JTable (modelo);
JSrollPane scrollpane = new JScrollPane(tabla);

Un JFrame es una clase que implementa como una instancia un frame que es una ventana con decoraciones, tales como: bordes, títulos y botones(íconos y para cerrar la ventana). Para poder utilizar esta herramienta hacemos los siguiente:

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

public class HolaMundo{
public static void main(String [] args){
JFrame frame = new JFrame("HolaMundoSwing");
......
frame.pack();
frame.setVisible(true);
}
}

Un JPanel es un contenedor ligero genérico que tiene la finalidad de "caja" donde tu puedes ir insertando cosas y así puedes manejarlos como una agrupación. Un ejemplo donde se implementa esta herramienta es:

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

public class PanelSolo {
public static void main(String[] args) {
JFrame f = new JFrame("Ejemplo");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Panel p0 = new Panel();
Panel p1 = new Panel();
Panel p2 = new Panel();
Panel p3 = new Panel();
Panel p4 = new Panel();
f.add(p0,"North");
f.add(p1,"West");
f.add(p2,"South");
f.add(p3,"Center");
f.add(p4,"East");
// Coloreo para distinguir los paneles.
p0.setBackground(Color.blue);
p3.setBackground(Color.white);
p4.setBackground(Color.red);

f.pack();
f.setVisible(true);
}
}

Por último esta el paquete awt(abstract windows toolkit o herramienta de ventana abstracta), es un kit de herramientas de gráficos, interfaz de usuario, y sistema de ventanas independientes de la plataforma de Java.

Luego de explicar cada definición de las herramientas y un ejemplo de uso, vamos ahora a mostrar un ejemplo completo con todos los elementos que son utilizados para complementar la tabla. El ejemplo es el siguiente:

import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.JScrollPane;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.*;
import java.awt.event.*;

public class EjemploTabla extends JFrame {
public EjemploTabla() {
super("Tabla de usuarios");
//array bidimencional de objetos con los datos de la tabla
Object[][] data = {"Daniel", "Villar","Esquiar", new Integer(5), new Boolean(false)},
{"Carlos", "Villar","Patinar", new Integer(3), new Boolean(true)},
{"Karinna", "Villar","Escalar", new Integer(2), new Boolean(false)},
{"Mario", "Diaz","Correr", new Integer(7), new Boolean(true)},
{"Sylvia", "Uribe","Modelar", new Integer(4), new Boolean(false)}};

//array de String's con los títulos de las columnas

String[] columnNames = {"Nombre","Apellido","Pasatiempo","Años de Practica","Soltero(a)"};
//creamos el Modelo de la tabla con los datos anteriores

DefaultTableModel dtm= new DefaultTableModel(data, columnNames);
//se crea la Tabla con el modelo DefaultTableModel

final JTable table = new JTable(dtm);
// una vez creada la tabla con su modelo
// podemos agregar columnas

String[] newColumn= {"Flan","Pastel","Helado","Barquillo","Manzana" };
dtm.addColumn("Postre",newColumn);
//filas

Object[] newRow={"Pepe", "Grillo","Tenis", new Integer(5), new Boolean(false), "Pera"};
dtm.addRow(newRow);
//o modificar una celda en especifico

dtm.setValueAt("Catherine", 1, 1);
//se define el tamaño

table.setPreferredScrollableViewportSize(new Dimension(500, 70));
//Creamos un JscrollPane y le agregamos la JTable

JScrollPane scrollPane = new JScrollPane(table);
//Agregamos el JScrollPane al contenedor

getContentPane().add(scrollPane, BorderLayout.CENTER);
//manejamos la salida

addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String[] args) {
EjemploTabla frame = new EjemploTabla();
frame.pack();
frame.setVisible(true);
}
}

Ejercicio

-Realizar un JTable simple con su Horario de la semana.





6 comentarios:

Unknown dijo...

JAVA SUCKS!

Anónimo dijo...

Gracias por la info.

idrodik dijo...

Te hace falta una llave en la linea 12

Object[][] data = --> { <-- {...

D@vix dijo...

como es que funciona la linea de model a mi no me anda en eclipse me sale que el construnctor no recibe parametro, ayuda!!!!!!

Unknown dijo...

TY

Kevin Arnold dijo...

http://enlawebdekaaf.blogspot.pe/p/java-fundamental.html

Publicar un comentario