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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.