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".
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);
}
}
//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