lunes, 11 de junio de 2012

JTable I

Uno de los controles mas utilizados en cualquier aplicacion de escritorio son las tablas, estas permiten mostrar informacion que fue procesada y organizada.

Las tablas para mostrar datos en la pantalla en java tienen una particularidad, no trabaja solamente el objeto JTable, este solo se usa para presentar en pantalla los datos.
JTable trabaja en conjunto con otros objetos que implementan la interface TableModel, el mas comun es DefaultTableModel, la interface le dice cuales son los metodos que si o si debe tener estos objetos para que puedan interactuar con JTable por ejemplo:

getRowCount() Te devuelve la cantidad de filas de la tabla
getColumnCount() Te devuelve la cantidad de columnas
setValueAt(Object value, int row, int col) Podes asignar el valor a una columna de una fila.

Normalmente esto es casi transparente, el objeto DefaultTableModel, ya esta creado y solo hay que usarlo.
Lo importante es saber que:

JTable presenta los datos en pantalla, y contiene un objeto (generalmente una instancia de DefaultTableModel).
DefaultTableModel o algun otro que implemente la interfaz TableModel, es el que maneja los datos, te permite darle los nombres a las columnas, agregar o quitar filas.


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

public class EjemploJTable extends JFrame {

  public EjemploJTable() {
    setTitle("Ejemplo");
    
    
    JPanel panel = new JPanel(new FlowLayout());
    
    String[] columnas = { "Mes","Cantidad" };
    
    Object[][] datos = {
      { "Enero","10" },
      { "Febrero","23" },
      { "Marzo","14" },
      { "Abril","26" }
    }; 

    DefaultTableModel model = new DefaultTableModel(datos,columnas);
    
    JTable tabla = new JTable(model);
    
    JScrollPane scrol = new JScrollPane(tabla);
    
    panel.add(scrol);
    
    setContentPane(panel);
    
    setVisible(true);
    pack();
  }
  
  
  public static void main(String[] args) {
    EjemploJTable frame = new EjemploJTable();
  }
  
}
		

El ejemplo en funcionamiento:

Free Image Hosting at www.ImageShack.us

No hay comentarios:

Publicar un comentario