Ayuda para tablas en swing
Diseñe una interfas para mostrar consultas de sql en swing, pero necesito mostarlas en una tabla, q obviamente necesita irse llenando y vaciando, pero no he encontrado como hacer digamos la tabla "dinamica", osea q se inicie vacia y se vaya llenado y vaciando en ejecucion con las consultas, es posible?? o no , y si lo es por fa q alguien me diga como.
Supongo que utilizarás ResultSet a la hora de realizar las consultas a la bd. Pues bien, este objeto puede devolverte toda una tabla de la bd en una clase llamada DefaultTableModel del paquete swing. Este objeto no deja de ser una tabla normal con los mismos métodos que las demás
Un saludo
Un saludo
Ya he creado tablas pero no las he conectado con
Bases de datos, sin embargo las he hecho dinámicas.
Si de algo te sirve, esto es lo que yo hago:
defino mi modelo de tabla que extiende de AbstractTableModel:
class Modelo extends AbstractTableModel{
Vector datos_;
Vector nombreColumnas;
public Modelo(...){
//Inicializo los vectores
}
// Retorna el # de las columnas
public int getColumnCount() {...}
// Retorna el # de las filas
public int getRowCount() {...}
// Retorna el nombre de la columna # col
public String getColumnName(int col) {...}
// Editabilidad en la tabla
public boolean isCellEditable(int fil, int col) {
if( ...es tal posicion)
return ...
}
// Retorna el elemento en la posición indicada
public Object getValueAt(int fil, int col) {
return
((Vector)datos_.elementAt(fil)).elementAt(col);
}
// Cambia el elemento en la posición indicada
public void setValueAt(Object dato, int fil, int col) {
((Vector)datos_.elementAt(fil)).setElementAt(
dato , col
);
}
// Y el método que permite que la tabla sea
// Dinámica
public void actualizar(...) {
// Actualizo mi vector de datos..
// IMPORTANTE:
fireTableDataChanged();
}
}
Ya el resto es cuestion de crear el JTable,
Pasarle un objeto de Modelo etc...
Bases de datos, sin embargo las he hecho dinámicas.
Si de algo te sirve, esto es lo que yo hago:
defino mi modelo de tabla que extiende de AbstractTableModel:
class Modelo extends AbstractTableModel{
Vector datos_;
Vector nombreColumnas;
public Modelo(...){
//Inicializo los vectores
}
// Retorna el # de las columnas
public int getColumnCount() {...}
// Retorna el # de las filas
public int getRowCount() {...}
// Retorna el nombre de la columna # col
public String getColumnName(int col) {...}
// Editabilidad en la tabla
public boolean isCellEditable(int fil, int col) {
if( ...es tal posicion)
return ...
}
// Retorna el elemento en la posición indicada
public Object getValueAt(int fil, int col) {
return
((Vector)datos_.elementAt(fil)).elementAt(col);
}
// Cambia el elemento en la posición indicada
public void setValueAt(Object dato, int fil, int col) {
((Vector)datos_.elementAt(fil)).setElementAt(
dato , col
);
}
// Y el método que permite que la tabla sea
// Dinámica
public void actualizar(...) {
// Actualizo mi vector de datos..
// IMPORTANTE:
fireTableDataChanged();
}
}
Ya el resto es cuestion de crear el JTable,
Pasarle un objeto de Modelo etc...
