Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/03/2012, 21:33
ghettodark22
 
Fecha de Ingreso: marzo-2012
Mensajes: 1
Antigüedad: 12 años, 9 meses
Puntos: 0
Actualizar jtable!!!

Quisiera saber como podria hacer para actualizar un JTABLE luego de haber modifacado los datos de una Base de Datos...........he intendado con varios metodos como:

.repaint();
.updateui
.revalidate

todo esto la tabla, lo mas extrano es que tambien intentente con los metodos del DefaultTableModel y tampoco me actualiza la tabla....aca les dejo el codigo, gracias por todo:

Código:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.table.DefaultTableModel;
public class teoriasDatos extends JFrame implements ActionListener{

    private final String[] titulos = {"Id", "Teoria", "Autor", "Año", "Ciencia"};
    
    private JMenuBar barra;
    private JMenu archivo, edicion;
    private JMenuItem salir, buscar, modificar, eliminar;
    private DefaultTableModel dtm = new DefaultTableModel();
    private JTable tabla = new JTable(dtm);
    private JScrollPane scroll = new JScrollPane(tabla);
    conexion cn = new conexion();
    
    public teoriasDatos(){
        super("Teorias System");
        this.setLayout(null);
        this.setSize(900, 460);
        this.setResizable(false);
        this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        this.Objetos();
        this.setVisible(true);
    }
    
    
    
    public void Objetos(){
        barra = new JMenuBar();
        archivo = new JMenu("Archivo");
        edicion = new JMenu("Edicion");
        buscar = new JMenuItem("Buscar");
        modificar = new JMenuItem("Modificar");
        eliminar = new JMenuItem("Eliminar");
        salir = new JMenuItem("Salir");
        barra.add(archivo);
        barra.add(edicion);
        archivo.add(salir);
        edicion.add(buscar);
        edicion.add(modificar);
        edicion.add(eliminar);
        this.setJMenuBar(barra);

        
        dtm.setColumnCount(0);
        dtm.setColumnIdentifiers(titulos);
        dtm.setRowCount(0);
        
        try{
             ResultSet aux = cn.getSt().executeQuery("SELECT*FROM datos");
             while(aux.next()){
             
                 Object [] fila = {aux.getObject(1), aux.getObject(2), aux.getObject(3), 
                     aux.getObject(4), aux.getObject(5)};
                 dtm.addRow(fila);
             
             }
             
        }catch(SQLException ioe){
      JOptionPane.showMessageDialog(null, "Error al leer registro: " + ioe);
        }

        
        scroll.setBounds(0, 0, 900, 460);
        this.add(scroll);
        salir.addActionListener(this);
        buscar.addActionListener(this);
        modificar.addActionListener(this);
        eliminar.addActionListener(this);
        dtm.addTableModelListener(tabla);
        
    }
    public void actionPerformed(ActionEvent e) {
        if(e.getSource()==buscar){
            try{
                int i = Integer.parseInt(JOptionPane.showInputDialog("ID de la teoria a buscar"));
                ResultSet resultado = cn.buscar(i);
                tabla.changeSelection(i-1, i, false, false);
    
            }catch(Exception ioe){
                JOptionPane.showMessageDialog(null, "Deber un introducir el ID " +ioe);
            }
        }else if(e.getSource() == modificar){
            
            try{
                int i = Integer.parseInt(JOptionPane.showInputDialog("ID de la teoria a modificar"));
                ResultSet resultado = cn.buscar(i);
                if(resultado.next()){
                    String au = JOptionPane.showInputDialog("Autor");
                    String an = JOptionPane.showInputDialog("Año");
                    String cie = JOptionPane.showInputDialog("Ciencia");
                    
            cn.modificar(i, au, an, cie);
            
            //ACA ES DONDE ESTA MI PROBLEMA
            dtm.fireTableRowsInserted(i, i);
                }
            }catch(Exception ioe){
                JOptionPane.showMessageDialog(null, "Error al modificar datos: " +ioe);
            }
            
            
            
            
        }
        
    }

    
    
}