Author Topic: como limpiar datos de un jtable al cerrar una ventana que es jpanel??  (Read 7343 times)

haw01

  • Jr. Member
  • **
  • Posts: 75
  • Karma: 0
    • View Profile
hola buenas manes bueno me quede algo atoradoi y queria ver si alguien tiene una idea de como lo puedo hacerlo que necesito hacer es que cuado cierro un jpanel lo que se habia cargdo en jtable yal cerrarlo me lo vacie me lo deje igual bueno he intentado hacerlo asi
Code: (java) [Select]

bueno primero en otra clase lo declaro con esto

      private DefaultTableModel modelo_pro;
y para ocuparlo lo ocupo asi de esta manera

 modelo_pro = new DefaultTableModel();


   modelo_pro.addColumn("Nombre de imagen");
         modelo_pro.addColumn("Nombre de usuario");

y le paso el modelo...

         jTable2.setModel(modelo_pro);
y con esto lo agrego o lo cargo al jtable

       
       

 public void addProceso(String app, String usuario){
         Object [] fila = new Object[2];
         fila[0] = app;
         fila[1] = usuario;
         modelo_pro.addRow ( fila ); add row para agregar
      }

pero no me la elimina bueno  habia escuchado algo asi pero no se como implementa esto
Code: (java) [Select]

por ejemplo estaba intentado que cuando se cierre la aplicacion,me limpie el jtable para esto estaba viendo la manera de hacer algo asi pero no me sale..
que cuando lo cierre me limpie el jtable....

  private  class FrameListener extends WindowAdapter
{
        @Override
    public void windowClosing ( WindowEvent e )
   {
   
       DefaultTableModel model = (DefaultTableModel)jTable3.getModel() ;

model.setRowCount(0) ;
       
   }
}
bueno aqui dejo una imagen que una imagen vale mas que mil palabras que cuando cierre l jpanel me limplie el jtable  con los datos cargados de esa ventana


aver si alguien me ayuda en esa parte muchas gracias

netmiyera

  • Newbie
  • *
  • Posts: 28
  • Karma: 0
    • View Profile
Re: como limpiar datos de un jtable al cerrar una ventana que es jpanel??
« Reply #1 on: Junio 07, 2011, 11:43:08 am »
Prueba con este codigo

Code: [Select]
if (Tabla.getColumnCount()>0) {
                modelo.setColumnCount(0);
                modelo.setRowCount(0);
            }

haw01

  • Jr. Member
  • **
  • Posts: 75
  • Karma: 0
    • View Profile
Re: como limpiar datos de un jtable al cerrar una ventana que es jpanel??
« Reply #2 on: Junio 07, 2011, 02:51:58 pm »
gracias por responder men,pero mi pregunta es como lo implemento paran que al cerrar la ventana,se vaya a esa clase y me limpie el JTABLE,casi como algo asi mira:
Code: (java) [Select]
private  class FrameListener extends WindowAdapter
{
        @Override
    public void windowClosing ( WindowEvent e )
   {
    if (Tabla.getColumnCount()>0) {
                modelo.setColumnCount(0);
                modelo.setRowCount(0);
            }
   }
}
que cuando lo cierre me limpie el jtable con los datos  eso es lo que no se hacer como lo hago...me entiendes XD??lo voy a seguir intentanto gracias por responder saludos ....

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5012
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: como limpiar datos de un jtable al cerrar una ventana que es jpanel??
« Reply #3 on: Junio 07, 2011, 03:06:36 pm »
Hola:

Veo que rellenas tabla2

 jTable2.setModel(modelo_pro);

y limpias tabla3

DefaultTableModel model = (DefaultTableModel)jTable3.getModel() ;
model.setRowCount(0) ;

¿un despiste o es así?

Se bueno.

haw01

  • Jr. Member
  • **
  • Posts: 75
  • Karma: 0
    • View Profile
Re: como limpiar datos de un jtable al cerrar una ventana que es jpanel??
« Reply #4 on: Junio 07, 2011, 03:18:41 pm »
gracias chuidiang,bueno yo me equivoque si es asi,lo que pasa es que tengo 3 jtables,pero mi idea es que cuando se salga me limpie los datos,lo que tu tienes es correcto,pero no se como implementarlo,pondre mi clase completa mira.....
Code: [Select]



/*
 * dialogoAdministrador.java
 *

 */

   package PRESENTACION;


   import javax.swing.SwingUtilities;
   import javax.swing.UIManager;
   import javax.swing.table.DefaultTableModel;

/**
 *
 * @author  hacker
 */
    public class dialogoAdministrador extends javax.swing.JDialog {
   
      private DefaultTableModel modelo_app;
      private DefaultTableModel modelo_pro;
      private DefaultTableModel modelo_cpu;
      private DefaultTableModel modelo_esp;
      private DefaultTableModel modelo_pag;
      private UIManager.LookAndFeelInfo apariencias[];
   
    /** Creates new form dialogoAdministrador */
       public dialogoAdministrador(java.awt.Frame parent, boolean modal) {
         super(parent, modal);
         initComponents();
       
         apariencias = UIManager.getInstalledLookAndFeels();
        //setLookAndFeld(2);
       
         modelo_app = new DefaultTableModel();
         modelo_pro = new DefaultTableModel();
         modelo_cpu = new DefaultTableModel();
         modelo_esp = new DefaultTableModel();
       
         jTable1.setModel(modelo_app);
         jTable2.setModel(modelo_pro);
         jTable3.setModel(modelo_cpu);
         jTable5.setModel(modelo_esp);
       
         modelo_app.addColumn("Tarea");
         modelo_app.addColumn("Estado");
       
         modelo_pro.addColumn("Nombre de imagen");
         modelo_pro.addColumn("Nombre de usuario");
       
         modelo_cpu.addColumn("Proceso");
         modelo_cpu.addColumn("Tiempo Restante");
       
         modelo_esp.addColumn("Proceso");
         modelo_esp.addColumn("Tiempo de Espera");
     
      }
   
       public DefaultTableModel getModelo_esp() {
         return modelo_esp;
      }
   
       public void setModelo_esp(DefaultTableModel modelo_esp) {
         this.modelo_esp = modelo_esp;
      }
   
       public void setLookAndFeld(int numero){
        // cambiar la apariencia visual
         try {
            UIManager.setLookAndFeel(apariencias[numero].getClassName());
            SwingUtilities.updateComponentTreeUI( this );
         }
             catch ( Exception excepcion ) {
               excepcion.printStackTrace();
            }
      }
   
       public void addAplicacion(String app, String usuario){
         Object [] fila = new Object[2];
         fila[0] = app;
         fila[1] = usuario;
         modelo_app.addRow ( fila );
      }
   
       public DefaultTableModel getModelo_cpu() {
         return modelo_cpu;
      }
   
       public void setModelo_cpu(DefaultTableModel modelo_cpu) {
         this.modelo_cpu = modelo_cpu;
      }
   
       public void addProceso(String app, String usuario){
         Object [] fila = new Object[2];
         fila[0] = app;
         fila[1] = usuario;
         modelo_pro.addRow ( fila );
      }
   
       public DefaultTableModel getModelo_app() {
         return modelo_app;
      }
   
       public void setModelo_app(DefaultTableModel modelo_app) {
         this.modelo_app = modelo_app;
      }
   
       public DefaultTableModel getModelo_pro() {
         return modelo_pro;
      }
   
       public void setModelo_pro(DefaultTableModel modelo_pro) {
         this.modelo_pro = modelo_pro;
      }
   
    /*Graficar páginas*/
       public void graficarPaginas(String[][] lista, int columnas) {
         int fils = lista.length;
         int cols = columnas;
         modelo_pag =  new DefaultTableModel();
       
         for (int i = 0; i < cols; i++) {
            modelo_pag.addColumn(i + 1);
         }       
       
         String[] vector = new String[cols];       
         for (int i = 0; i < fils; i++){
            for (int j = 0; j < cols; j++) {
               vector[j] = lista[i][j];
            }
            modelo_pag.addRow(vector);
         }
       
         jTable4.setModel(modelo_pag);
         jScrollPane4.setViewportView(jTable4);
       
      }
   
   
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
       @SuppressWarnings("unchecked")
       // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
       private void initComponents() {
     
         jTabbedPane1 = new javax.swing.JTabbedPane();
         jPanel1 = new javax.swing.JPanel();
         jScrollPane1 = new javax.swing.JScrollPane();
         jTable1 = new javax.swing.JTable();
         jPanel2 = new javax.swing.JPanel();
         jScrollPane2 = new javax.swing.JScrollPane();
         jTable2 = new javax.swing.JTable();
         jPanel3 = new javax.swing.JPanel();
         jPanel4 = new javax.swing.JPanel();
         jScrollPane3 = new javax.swing.JScrollPane();
         jTable3 = new javax.swing.JTable();
         jScrollPane5 = new javax.swing.JScrollPane();
         jTable5 = new javax.swing.JTable();
         jPanel5 = new javax.swing.JPanel();
         jScrollPane4 = new javax.swing.JScrollPane();
         jTable4 = new javax.swing.JTable();
         jButton1 = new javax.swing.JButton();
     
         setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
         setTitle("Administrador de tareas de JInti");
         setResizable(false);
     
         jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
               },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
               }
            ));
         jTable1.setShowHorizontalLines(false);
         jTable1.setShowVerticalLines(false);
         jScrollPane1.setViewportView(jTable1);
     
         javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
         jPanel1.setLayout(jPanel1Layout);
         jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 357, Short.MAX_VALUE)
                .addContainerGap())
            );
         jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)
                .addContainerGap())
            );
     
         jTabbedPane1.addTab("Aplicaciones", jPanel1);
     
         jTable2.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
               },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
               }
            ));
         jTable2.setShowHorizontalLines(false);
         jTable2.setShowVerticalLines(false);
         jScrollPane2.setViewportView(jTable2);
     
         javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
         jPanel2.setLayout(jPanel2Layout);
         jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 357, Short.MAX_VALUE)
                .addContainerGap())
            );
         jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)
                .addContainerGap())
            );
     
         jTabbedPane1.addTab("Procesos", jPanel2);
     
         jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("Historial de uso de CPU"));
     
         jTable3.setBackground(new java.awt.Color(0, 0, 0));
         jTable3.setForeground(new java.awt.Color(0, 255, 51));
         jTable3.setModel(
                new javax.swing.table.DefaultTableModel(
                new Object [][] {
                   {null, null},
                   {null, null},
                   {null, null},
                   {null, null}
                   },
                new String [] {
                   "Proceso", "Tiempo Restante"
                   }
                ) {
                  boolean[] canEdit = new boolean [] {
                     false, false
                     };
               
                   public boolean isCellEditable(int rowIndex, int columnIndex) {
                     return canEdit [columnIndex];
                  }
               });
         jScrollPane3.setViewportView(jTable3);
     
         jTable5.setBackground(new java.awt.Color(0, 0, 0));
         jTable5.setForeground(new java.awt.Color(0, 255, 51));
         jTable5.setModel(
                new javax.swing.table.DefaultTableModel(
                new Object [][] {
                   {null, null},
                   {null, null},
                   {null, null},
                   {null, null}
                   },
                new String [] {
                   "Proceso", "Tiempo Restante"
                   }
                ) {
                  boolean[] canEdit = new boolean [] {
                     false, false
                     };
               
                   public boolean isCellEditable(int rowIndex, int columnIndex) {
                     return canEdit [columnIndex];
                  }
               });
         jScrollPane5.setViewportView(jTable5);
     
         javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
         jPanel4.setLayout(jPanel4Layout);
         jPanel4Layout.setHorizontalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel4Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 321, Short.MAX_VALUE)
                    .addComponent(jScrollPane5, javax.swing.GroupLayout.DEFAULT_SIZE, 321, Short.MAX_VALUE))
                .addContainerGap())
            );
         jPanel4Layout.setVerticalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel4Layout.createSequentialGroup()
                .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jScrollPane5, javax.swing.GroupLayout.DEFAULT_SIZE, 94, Short.MAX_VALUE)
                .addContainerGap())
            );
     
         jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder("Memoria del núcleo"));
     
         jTable4.setBackground(new java.awt.Color(0, 0, 0));
         jTable4.setForeground(new java.awt.Color(0, 255, 51));
         jTable4.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
               },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
               }
            ));
         jScrollPane4.setViewportView(jTable4);
     
         javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
         jPanel5.setLayout(jPanel5Layout);
         jPanel5Layout.setHorizontalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel5Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane4, javax.swing.GroupLayout.DEFAULT_SIZE, 321, Short.MAX_VALUE)
                .addContainerGap())
            );
         jPanel5Layout.setVerticalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup()
                .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 112, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
            );
     
         javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
         jPanel3.setLayout(jPanel3Layout);
         jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jPanel4, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel5, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
            );
         jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
            );
     
         jTabbedPane1.addTab("Rendimiento", jPanel3);
     
         jButton1.setText("Salir");
         jButton1.addActionListener(
                new java.awt.event.ActionListener() {
                   public void actionPerformed(java.awt.event.ActionEvent evt) {
                     jButton1ActionPerformed(evt);
                  }
               });
     
         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
         getContentPane().setLayout(layout);
         layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jTabbedPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 382, Short.MAX_VALUE)
                    .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 76, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
            );
         layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 450, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jButton1)
                .addContainerGap())
            );
     
         pack();
      }// </editor-fold>//GEN-END:initComponents
   
       private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
      // TODO add your handling code here:
         this.setVisible(false);
      }//GEN-LAST:event_jButton1ActionPerformed
   
    // Variables declaration - do not modify//GEN-BEGIN:variables
      private javax.swing.JButton jButton1;
      private javax.swing.JPanel jPanel1;
      private javax.swing.JPanel jPanel2;
      private javax.swing.JPanel jPanel3;
      private javax.swing.JPanel jPanel4;
      private javax.swing.JPanel jPanel5;
      private javax.swing.JScrollPane jScrollPane1;
      private javax.swing.JScrollPane jScrollPane2;
      private javax.swing.JScrollPane jScrollPane3;
      private javax.swing.JScrollPane jScrollPane4;
      private javax.swing.JScrollPane jScrollPane5;
      private javax.swing.JTabbedPane jTabbedPane1;
      private javax.swing.JTable jTable1;
      private javax.swing.JTable jTable2;
      private javax.swing.JTable jTable3;
      private javax.swing.JTable jTable4;
      private javax.swing.JTable jTable5;
    // End of variables declaration//GEN-END:variables
   
   }
y bueno me aparece el dialogo daministrador y para que lo agregue al jtable me lo agrega asii

Code: [Select]
public void addProceso(String app, String usuario){
         Object [] fila = new Object[2];
         fila[0] = app;
         fila[1] = usuario;
         modelo_pro.addRow ( fila );
      }
   


ahora lo que yo me pregunto es como le hago para que con tu codigo si cierro la ventana me limpie los datos....gracias chuidiang...saludos...saludos

chato

  • Newbie
  • *
  • Posts: 43
  • Karma: 0
    • View Profile
Re: como limpiar datos de un jtable al cerrar una ventana que es jpanel??
« Reply #5 on: Junio 08, 2011, 11:16:58 pm »
Si lo que queres es que al cerrar un JFrame se ejecute algún código necesitas esta línea:

Code: [Select]
setDefaultCloseOperation(0);

y también:

Code: [Select]
addWindowListener(new java.awt.event.WindowAdapter(){
          public void windowClosing(WindowEvent e){
             
              // AQUÍ TÚ CÓDIGO PARA LIMPIAR

          }
});

todo esto en tu JFrame, ¿te refieres a eso?

A mi me ha pasado que aunque tenga el método windowsClosing no se ejecuta porque el setDefaultCloseOperation está así:

Code: [Select]
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

y es que así viene por defecto con el Netbeans.


Dayana

  • Newbie
  • *
  • Posts: 49
  • Karma: 0
    • View Profile
Re: como limpiar datos de un jtable al cerrar una ventana que es jpanel??
« Reply #6 on: Junio 12, 2011, 10:55:57 pm »
Proba esto:

Hacer una nueva clase que implemente WindowsListener, y ahí sobreescribis windowsClosed y windowsClosing.

Ponele por parámetros los que necesites (la tabla, el frame, lo que sea), y en una de esas opciones, limpias la tabla.