actualizar jTable
juan lopez <jazpiroz2006-/[email protected]>
| Newsgroups | gmane.comp.java.javaspain |
|---|---|
| Message-ID | <[email protected]> |
Hola yo devuelta, hace un tiempo pregunte por esto, y bueno desde entonces no encuentro la soluciòn a poder actualizar una tabla ya sea con un boton actualizar o automaticamente, navegar si he navegado y probado de todo
estoy desesperado por esto,
les pego el codigo y me cuentan como puedo lograr esto
desde ya muchas gracias
el tableModel:
package grafica;
import java.util.Vector;
import javax.swing.table.AbstractTableModel;
import logica.Clientes;
import logica.Material;
import logica.Proveedor;
import javax.swing.table.*;
import javax.swing.event.*;
import java.util.*;
public class TableModelProveedores extends AbstractTableModel{
private Vector vecPro;
private String [] columnas={"Código","Nombre","Dirección","Teléfono","RUC","Contacto"};
// Constructor. Recibe los bov a mostrar en la tabla y las guarda
public TableModelProveedores(Vector cli)
{
vecPro = cli;
}
// métodos sobre-escritos heredados de AbstractTableModel
// cantidad de columnas
public int getColumnCount()
{
return columnas.length;
}
// cantidad de filas
public int getRowCount()
{
return vecPro.size();
}
// nombre de columna
public String getColumnName(int col)
{
return columnas[col];
}
// valor almacenado en una determinada posición de la tabla
public Object getValueAt(int fila,int col)
{
switch(col) {
case 0: return (((Proveedor) vecPro.get(fila)).getCodigo());
case 1: return ((Proveedor) vecPro.get(fila)).getNombre();
case 2: return ((Proveedor) vecPro.get(fila)).getDireccion();
case 3: return ((Proveedor) vecPro.get(fila)).getTelefono();
case 4: return ((Proveedor) vecPro.get(fila)).getRuc();
case 5: return ((Proveedor) vecPro.get(fila)).getContacto();
default: return null;
//TableModelEvent evento = new TableModelEvent (this,fila , fila);
// ... y pasándoselo a los suscriptores.
//avisaSuscriptores (evento);
}
}
public int getCodAt(int fila){
int codigo = ((Proveedor) vecPro.get(fila)).getCodigo();
return codigo;
//Avisa a los suscriptores del cambio, creando un TableModelEvent ...
}
/** Lista con los datos. Cada elemento de la lista es una instancia de
* Persona */
/** Lista de suscriptores. El JTable será un suscriptor de este modelo de
* datos */
private LinkedList listeners = new LinkedList();
public void addTableModelListener(TableModelListener l) {
// Añade el suscriptor a la lista de suscriptores
listeners.add (l);
}
public void removeTableModelListener(TableModelListener l) {
// Elimina los suscriptores.
listeners.remove(l);
}
// que las celdas no sean editables
public boolean isCellEditable(int fila,int col)
{
return false;
}
private void avisaSuscriptores (TableModelEvent evento)
{
int i;
// Bucle para todos los suscriptores en la lista, se llama al metodo
// tableChanged() de los mismos, pasándole el evento.
for (i=0; i<vecPro.size(); i++)
((TableModelListener)listeners.get(i)).tableChanged(evento);
}
/**************** actualizar() ************************/
public Vector actualizar(Vector CC ) {
// Ejecutar la consulta
vecPro=CC;
fireTableStructureChanged(); // Ordena a la JTable que se actualice
return vecPro;
}
}
y la ventana donde genero la tabla:
package grafica;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Iterator;
import java.util.Vector;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.WindowConstants;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.TableColumn;
import persistencia.ConexionSingletonFirebird;
import java.sql.Connection;
import java.util.*;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
import logica.ColClientes;
import logica.Clientes;
import logica.Facade;
import logica.Material;
import logica.Proveedor;
/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class VentanaListadoProveedores extends javax.swing.JFrame implements ListSelectionListener, ActionListener {
private JPanel jPanel1;
private JPanel lista;
Vector vecBanco;
private JButton jButtonActualiza;
private JButton jButtonModifica;
private JButton jButtonSalir;
private JButton jButtonEliminar;
private JButton jButtonAgregar;
ListSelectionModel mod;
JTable tabla;
TableModelProveedores modelo;
JButton boton;
JFrame frame;
Facade log;
public int codigo;
/**
* Auto-generated main method to display this JFrame
*/
public static void main(String[] args) {
VentanaListadoProveedores inst = new VentanaListadoProveedores();
inst.setVisible(true);
}
public VentanaListadoProveedores() {
super();
initGUI();
}
private void initGUI() {
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
this.setLocation(new java.awt.Point(80, 70));
this.setTitle("Listado de Proveedores");
{
jPanel1 = new JPanel();
getContentPane().add(jPanel1, BorderLayout.CENTER);
jPanel1.setLayout(null);
jPanel1.setPreferredSize(new java.awt.Dimension(588, 308));
{
lista = new JPanel();
jPanel1.add(lista);
lista.setBounds(21, 7, 833, 406);
lista.setLayout(null);
}
{
jButtonAgregar = new JButton();
jPanel1.add(jButtonAgregar);
jButtonAgregar.addActionListener(this);
jButtonAgregar.setText("Nuevo");
jButtonAgregar.setBounds(28, 420, 105, 28);
//jButtonAgregar.setIcon(new ImageIcon(getClass().getClassLoader().getResource("grafica/imagenes/bt_Nuevo.jpg")));
}
{
jButtonEliminar = new JButton();
jPanel1.add(jButtonEliminar);
jButtonEliminar.addActionListener(this);
jButtonEliminar.setText("Eliminar");
jButtonEliminar.setBounds(273, 420, 112, 28);
//jButtonEliminar.setIcon(new ImageIcon(getClass().getClassLoader().getResource("grafica/imagenes/bt_Eliminar.jpg")));
}
{
jButtonSalir = new JButton();
jPanel1.add(jButtonSalir);
jButtonSalir.addActionListener(this);
jButtonSalir.setText("Salir");
jButtonSalir.setBounds(756, 420, 98, 28);
//jButtonSalir.setIcon(new ImageIcon(getClass().getClassLoader().getResource("grafica/imagenes/btnSalir.jpg")));
}
{
jButtonModifica = new JButton();
jPanel1.add(jButtonModifica);
jButtonModifica.addActionListener(this);
jButtonModifica.setText("Modifica");
jButtonModifica.setBounds(147, 420, 112, 28);
//jButtonModifica.setIcon(new ImageIcon(getClass().getClassLoader().getResource("grafica/imagenes/bt_Editar.jpg")));
}
{
jButtonActualiza = new JButton();
jPanel1.add(jButtonActualiza);
jButtonActualiza.setText("Actualiza Listado");
jButtonActualiza.addActionListener(this);
jButtonActualiza.setBounds(406, 420, 126, 28);
}
try{
log = new Facade(0);
Iterator itera = log.listarProv(0);
vecBanco = new Vector();
while(itera.hasNext()){
Proveedor cli = (Proveedor)itera.next();
vecBanco.addElement(cli);//el table model recibe un vector, no un iterator
}
}catch(Exception ex){
JOptionPane.showMessageDialog(this,ex.getMessage(),"Error",JOptionPane.ERROR_MESSAGE);
}
modelo = new TableModelProveedores(vecBanco);
tabla = new JTable(modelo);
tabla.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
mod = tabla.getSelectionModel();
mod.addListSelectionListener(this);
//parte grafica
JScrollPane scrollPane = new JScrollPane(tabla);
lista.add(scrollPane);
scrollPane.setBounds(7, 7, 826, 385);
setPreferredWidth();
}
pack();
this.setSize(867, 493);
} catch (Exception e) {
e.printStackTrace();
}
}
public void setPreferredWidth(){
TableColumn columna = null;
for(int i = 0; i<modelo.getColumnCount(); i++){
columna = tabla.getColumnModel().getColumn(i);
if(i==0){
columna.setPreferredWidth(70);
}if(i==1){
columna.setPreferredWidth(140);
}
}
}
public void valueChanged(ListSelectionEvent e){
if(e.getValueIsAdjusting())
return;
if( e.getSource() == tabla.getSelectionModel()){
// obtener el data model
TableModelProveedores model = (TableModelProveedores)tabla.getModel();
// Determinar el selected item
int row = tabla.getSelectedRow();
codigo = model.getCodAt(row);
}
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()== jButtonSalir){
dispose();
}
if(e.getSource()== jButtonAgregar){
IngresoProveedor ins = new IngresoProveedor();
ins.setVisible(true);
}
if(e.getSource()== jButtonEliminar){
//AvisoEliminaMaterial ins = new AvisoEliminaMaterial(codigo);
//ins.setVisible(true);
}
if(e.getSource()== jButtonActualiza){
try{
log = new Facade(0);
Iterator itera = log.listarMateriales(0);
vecBanco = new Vector();
while(itera.hasNext()){
Material cli = (Material)itera.next();
vecBanco.addElement(cli);//el table model recibe un vector, no un iterator
}
}catch(Exception ex){
JOptionPane.showMessageDialog(this,ex.getMessage(),"Error",JOptionPane.ERROR_MESSAGE);
}
//modelo = new TableModelMateriales(vecBanco);
tabla = new JTable(modelo);
//tabla.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
//mod = tabla.getSelectionModel();
//mod.addListSelectionListener(this);
//parte grafica
JScrollPane scrollPane = new JScrollPane(tabla);
lista.add(scrollPane);
scrollPane.setBounds(7, 7, 826, 385);
}
if(e.getSource()==jButtonModifica ){
//ModificaMaterial ins = new ModificaMaterial(codigo);
//ins.setVisible(true);
}
}
}
desde ya muchas gracias
---------------------------------
Tarjeta de crédito Yahoo! de Banco Supervielle.Solicitá tu nueva Tarjeta de crédito. De tu PC directo a tu casa.
Visitá www.tuprimeratarjeta.com.ar