Foros del Web » Programación para mayores de 30 ;) » Java »

Como actualizar los datos de este JTable

Estas en el tema de Como actualizar los datos de este JTable en el foro de Java en Foros del Web. Hola amigos estoy mostrando los datos de una BD en un JTable pero no logro que al momento de actualizar un dato me lo muestre ...
  #1 (permalink)  
Antiguo 13/09/2015, 13:30
 
Fecha de Ingreso: junio-2011
Mensajes: 39
Antigüedad: 13 años, 5 meses
Puntos: 0
Como actualizar los datos de este JTable

Hola amigos estoy mostrando los datos de una BD en un JTable pero no logro que al momento de actualizar un dato me lo muestre directo en el JTable sin tener que volver a abrir el programa.

Código:
public class consultarbd extends JFrame {
    JTextField tel=new JTextField(10);
    JTextField newnom=new JTextField(10);
    JLabel newnomb=new JLabel("nuevo nombre");
    JLabel telefono=new JLabel ("telefono");
    JLabel nom=new JLabel("");
    JLabel nombre=new JLabel("nombre");
    JButton boton=new JButton("consultar");
    JButton boton2=new JButton("modificar");
    
    consultarbd() throws ClassNotFoundException, SQLException{
        super("Consultar un registro en la base de datos");
        JPanel pan=new JPanel(new GridLayout(4,2));
        pan.add(telefono);
        pan.add(tel);
        pan.add(nombre);
        pan.add(nom);
        pan.add(boton);
        pan.add(boton2);
        pan.add(newnomb);
        pan.add(newnom);
        getContentPane().setLayout(new FlowLayout());
        getContentPane().add(pan);
        ///
        //array de String's con los títulos de las columnas
        String[] columnNames = {"Telefono", "Nombre"};
        CONEXION_DB bd=new CONEXION_DB();
        DefaultTableModel dtm=new DefaultTableModel(bd.listarTable(), columnNames);
        final JTable table=new JTable(dtm);
        //Creamos un JscrollPane y le agregamos la JTable
        JScrollPane scrollPane = new JScrollPane(table);
        //Agregamos el JScrollPane al contenedor
        getContentPane().add(scrollPane, BorderLayout.CENTER);
        //Accion del primer boton
        ActionListener oye=new ActionListener(){//esto es lo que realiza el boton consultar
            public void actionPerformed(ActionEvent ae) {
                String telef=tel.getText();
                CONEXION_DB bd=new CONEXION_DB();
                try {
                    nom.setText(bd.consultar(telef));
                    
                } catch (ClassNotFoundException ex) {
                    Logger.getLogger(consultarbd.class.getName()).log(Level.SEVERE, null, ex);
                } catch (SQLException ex) {
                    Logger.getLogger(consultarbd.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        };
lei que con el fireTableDataChanged();
pero lo meto en la acción del botón 1 y no me hace nada, gracias
  #2 (permalink)  
Antiguo 17/11/2015, 09:29
 
Fecha de Ingreso: diciembre-2012
Mensajes: 53
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Como actualizar los datos de este JTable

Código Java:
Ver original
  1. table.fireTableDataChanged(); //// table = nombre de tu tabla
  #3 (permalink)  
Antiguo 17/11/2015, 10:02
 
Fecha de Ingreso: noviembre-2015
Mensajes: 34
Antigüedad: 9 años
Puntos: 4
Respuesta: Como actualizar los datos de este JTable

Pues lo tienes muy fácil, mucho más de lo que te crees y olvidándote del fireTableDataChanged, yo si fuera tú, declararía un método que se encargue de actualizar los datos de la tabla y después lo ejecutaría cada vez que se pulse el botón(después de que se obtengan los datos)

Código Java:
Ver original
  1. private void renderUpdatedData(Info inf){
  2. //coges los datos de inf
  3. //los escribes en el Jtable
  4. //Info sería el objeto que contiene los datos, si es solo un String, pues String
  5. }
  6.  
  7.  
  8. //después solo tienes que ejecutarla despúes de que se actualicen los datos, en tu caso en el actionPerformed del botón.
  9. //además veo que creas el listener y todo pero no le dices que sea de ese botón, no se si te funcionará eso o te lo ejecutará cada vez que ocurra cualquier ActionEvent(cosa que no queremos)
  10.  
  11. //Sería tan fácil como añadirlo todo así...
  12.  
  13. boton.addActionListener(new ActionListener() {
  14.         public void actionPerformed(ActionEvent arg0) {
  15.                  //código de actualización o lo que quieras hacer
  16.                  //por último actualizamos el Componente
  17.                 renderUpdateDataInfo()
  18.     }
  19. });

Etiquetas: jframe, jtable, programa, sql, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:09.