martes, 6 de diciembre de 2016

JTABLE








1. CONTENIDO
DEFINICIÓN:
Un JTable representa una tabla de datos con sus respectivas Filas y Columnas, la información que se muestra en ella puede ser ingresada tanto por nosotros como obtenida de una base de datos.
JTable es una clase que me permite organizar una determinada información en tabla, ésta difiere de una base de datos normal porque al utilizar JTable podemos visualizar esta tabla, brindándole al usuario organización de información, oportunidades de editar y cambiar el tamaño de las columnas entre otras.


 














INICIOS DE JTABLE:
En principio se creó la clase JTable para constituir un interfaz ligado a bases de datos a través de "Java Database Connectivity" (JDBC), y así evita la complejidad que existía para el manejo de datos, dando así al programador mucha más facilidad a la hora de trabajar con este tipo de información.
JTable le da al programador muchas facilidades, pues este posee varias características que permiten hacer desde tablas con información compleja y muy estructurada hasta tablas con información sencilla y "básica".
TABLE MODEL:
La clase JTable controla como se presentan los datos, siendo el TableModel quien controla los datos sí mismos. Para crear una JTable habrá pues que crear un TableModel antes, normalmente. TableModel lo que hace es predeterminar ciertas características para el JTable es decir, que tú puedes poner ciertos parámetros dentro de un TableModel y así no tener que determinarlos siempre. TableModel es un programa que guarda los datos de la tabla para sí mismo, es decir, puede tener la información de la tabla, pero estos datos son visualizados por el computador, es decir, para visualizar una tabla el TableModel puede tener la información, pero sin el JTable no se puede visualizar para el usuario.

ES EDITABLE O NO?
JTable tiene una característica muy llamativa, este permite que el programador pueda decidir que se edita y que no, sin embargo, si el programador dentro de su programa o de su TableModel no tiene determinado este aspecto, JTable automáticamente hace editable las celdas dentro de la tabla. Existen varias maneras de hacer editable o no las celdas dentro de la tabla, para ver estos comandos tú te puedes dirigir a Dentro de las celdas encontradas en una tabla se puede permitir al usuario editar o no editar según lo desee el programador, esta propiedad se puede arreglar desde el TableModel o directamente y/o desde el programa. JTable tiene la propiedad de dejar editable las celdas si no encuentra nada que hable de esto.

Y LA INFORMACIÓN, Y LAS COLUMNAS?
JTable te brinda muchas facilidades para poder crear una table, y así mismo de llenarla con la información que desees ( números, letras etc...) por lo que sencillamente dentro de una tabla está automáticamente a través de la información debidamente separada - por ""(comillas) o por , (coma) - es capaz de contabilizarlas y al mismo tiempo llenarla con la información que se le dio; es decir el programador solo se debe encargar de poner los títulos de las tablas y así mismo de escribir la información en el mismo orden en que desee que salga de acuerdo con los títulos y JTable se encargará automáticamente de colocar la información donde se le indico.


LLENAR UN JTABLE CON UNA BASE DE DATOS.
Lo siguiente es un codigo en donde se llena un Jtable con Netbeans, pero haciéndolo mediante una base de datos... Solamente toca cambiar la conexion, el select y el nombre del Jtable
//Devuelve toda la tabla producto
public static DefaultListModel obtenerCodigos() {
DefaultListModel modelo = new DefaultListModel();
try {
DefaultListModel defaultListModel = new DefaultListModel();

int contador=1;
String codigo="";
ResultSet resultados = conexion.ejecutarConsulta("SELECT * FROM producto");
//Este while es quien llega la lista para luego utilizarla llenando el Jtable
while(resultados.next()){
codigo= resultados.getString(1);
defaultListModel.addElement(contador+". "+codigo);
contador++;
}
conexion.cerrarConsulta();
return defaultListModel;
} catch (SQLException ex) {
return modelo;
}
}
//aqui se llena el Jtable con lo que retorno lo anterior
this.listMarcadores.setModel(obtenerCodigos());

PROPIEDADES:
Lo siguiente es un código en donde se llena un Jtable con Netbeans, pero haciéndolo mediante una base de datos... Solamente toca cambiar la conexión, el select y el nombre del Jtable.

//Devuelve toda la tabla producto

public static DefaultListModel obtenerCodigos() {
DefaultListModel modelo = new DefaultListModel();
try {
DefaultListModel defaultListModel = new DefaultListModel();

int contador=1;
String codigo="";
ResultSet resultados = conexion.ejecutarConsulta("SELECT * FROM producto");

//Este while es quien llega la lista para luego utilizarla llenando el Jtable

while(resultados.next()){
codigo= resultados.getString(1);
defaultListModel.addElement(contador+". "+codigo);
contador++;
}
conexion.cerrarConsulta();
return defaultListModel;
} catch (SQLException ex) {
return modelo;
}
}
//aqui se llena el Jtable con lo que retorno lo anterior

this.listMarcadores.setModel(obtenerCodigos());


EJEMPLO:
private void inicio(){
       
//Método para configurar el DefaultTableModel de la tabla.
        //Especificamos el tamaño de cada columna
        jTb.getColumnModel().getColumn(0).setPreferredWidth(100);
        jTb.getColumnModel().getColumn(
1).setPreferredWidth(100);
        jTb.getColumnModel().getColumn(
2).setPreferredWidth(50);
        jTb.getColumnModel().getColumn(
3).setPreferredWidth(100);
        jTb.getColumnModel().getColumn(
4).setPreferredWidth(100);
       
//Indicamos el DefaultTableModel de nuestra tabla
        model = (DefaultTableModel) jTb.getModel();
       
//Indicamos el número de filas
        model.setNumRows(0);       
    }
   
   
//Método para agregar datos a la tabla.
    private void agregar(){
       
//También mostramos como agregar un JCheckBox a la tabla
        JCheckBox check = new JCheckBox();
       
//Comprobamos que los campos de datos no esten vacíos
        if(!nombre.getText().isEmpty() || !apellido.getText().isEmpty() ||
                !edad.getText().isEmpty() || !profesion.getText().isEmpty()){
           
//Utilizamos un boolean para obtener el valor del combo.
            boolean rp = casado.getSelectedItem().toString().equals("Sí"); 
           
//Utilizamos try para la controlar posibles errores de conversión.
            try {
               
//Convertimos en entero lo obtenido del campo edad.
                int edd = Integer.parseInt(edad.getText());
               
//agregamos los datos a la tabla utilizando Object[]
                model.addRow(new Object[]{
                    nombre.getText(),apellido.getText(),edd, profesion.getText(),rp
                });
                limpiar();
            }
catch (NumberFormatException e) {
                JOptionPane.showMessageDialog(
null, "Edad debe ser numérico");
            }
           
        }
       
//Agregamos el JCheckBox utilizando CellEditor y la clase CellRenderer creado más abajo
        jTb.getColumnModel().getColumn(4).setCellEditor(new DefaultCellEditor(check));
        jTb.getColumnModel().getColumn(
4).setCellRenderer(new Render_CheckBox());
    }
   
//Método para obtener la fila seleccionada de la tabla
    private void seleccion(){
       
if(jTb.getRowCount() > 0 ){
            sel = jTb.getSelectedRow();
        }
    }
   
//Método para obtener la fila seleccionada de la tabla.
    private void eliminar(){
       
if(sel >= 0){
            model.removeRow(sel);
            sel = -
1;
        }
       
else{
            JOptionPane.showMessageDialog(
null, "Selecciona una fila.");
        }
    }
   
   
//Método para limpiar campos después de agregar los datos a la tabla
    private void limpiar(){
        nombre.setText(
null);
        apellido.setText(
null);
        edad.setText(
null);
        profesion.setText(
null);
        casado.setSelectedIndex(-
1);
    }
   
//Clase para manejar el TableCellRenderer, que permitirá mostrar el JCheckBox
    class Render_CheckBox extends JCheckBox implements TableCellRenderer {
   
//
        private final JComponent component = new JCheckBox();

       
/** Constructor de clase */
       
public Render_CheckBox() {
            setOpaque(
true);
    }

            @Override
     
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
         
//Color de fondo de la celda
          ( (JCheckBox) component).setBackground( new Color(98,138,183) );
         
//obtiene valor boolean y coloca valor en el JCheckBox
          boolean b = ((Boolean) value).booleanValue();
          ( (JCheckBox) component).setSelected( b );
         
return ( (JCheckBox) component);
      }
    }


2. RESUMEN.
La clase JTable controla como se presentan los datos, siendo el TableModel quien controla los datos sí mismos.
JTable automáticamente hace editable las celdas dentro de la tabla. Existen varias maneras de hacer editable o no las celdas dentro de la tabla, para ver estos comandos tú te puedes dirigir adentro de las celdas encontradas en una tabla se puede permitir al usuario editar o no editar según lo desee el programador
Para crear una JTable habrá pues que crear un TableModel.TableModel lo que hace es predeterminar ciertas características para el JTable es decir, que tú puedes poner ciertos parámetros dentro de un TableModel y así no tener que determinarlos siempre.



3. SUMMARY.
The JTable class controls how the data is presented, with TableModel controlling the data themselves.
JTable automatically makes the cells within the table editable. There are several ways to make cells editable or not inside the table, to see these commands you can direct inside the cells found in a table can be allowed to edit or not edit as desired by the programmer
To create a JTable will have to create a TableModel.TableModel what it does is to predetermine certain characteristics for the JTable ie you can put certain parameters inside a TableModel and thus not have to always determine them.
TableModel can have the information of the table, but these data are displayed by the computer, ie to display a table the TABLEMODEL can have the information, but without the JTable can not be displayed for the user.

 4. RECOMENDACIONES.
  Al leer este trabajo   se han dado cuenta como se utiliza y para qué sirve    jTable   los recomendamos primero que hagan la conexión con la base de datos y además con el uso de un jTable podrán mostrar todos los datos que tienes en su BD.


5. CONCLUSIONES.
Un JTable representa una tabla de datos con sus respectivas Filas y Columnas, la información que se muestra en ella puede ser ingresada tanto por nosotros como obtenida de una base de datos.
Además, través de un jtable nosotros podemos mostrar los contenidos de las tablas de nuestra base de datos.

6. APRECIACIÓN DEL EQUIPO
Muchas veces utilizamos las herramientas que nos proporciona Java sin saber su definición o para que sirve bueno haciendo este trabajo hemos entendido el uso del jtable con base de datos y nos hemos dado cuenta por que se usan los métodos como el TableModel entre otros.

7. GLOSARIO DE TÉRMINOS

INSTANCIA: es la particularización, realización específica u ocurrencia de una determinada clase, entidad.

SWING: Es un biblioteca gráfica para Java. Es parte de Sun Microsystems Java Foundation Classes (JFC), un API para proporcionar una interfaz gráfica de usuario(GUI)  para programas de Java ,tales como cajas de texto, botones, desplegables y tablas.

SCROLL: Se denomina scroll, desplazamiento, rollo o voluta al movimiento en 2D de los contenidos que conforman el escenario de un videojuego o la ventana que se muestra en una aplicación informática (por ejemplo, una página web visualizada en un navegador web).


AQUI ESTA EL VIDEO EXOLICATIVO






LINK DE LA DIAPOSITIVA AQUI......................





LINKOGRAFÍA.





No hay comentarios:

Publicar un comentario