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:
JAVA SUCKS!
Gracias por la info.
Te hace falta una llave en la linea 12
Object[][] data = --> { <-- {...
como es que funciona la linea de model a mi no me anda en eclipse me sale que el construnctor no recibe parametro, ayuda!!!!!!
TY
http://enlawebdekaaf.blogspot.pe/p/java-fundamental.html
Publicar un comentario