2015-12-02 5 views
1

Mon application glitches chaque fois que j'exécute une mise à jour du modèle de table, comme on peut voir dans la première image que je fais une requête avec le numéro 1, elle renvoie les données du resultset dans le tableau, image 2, je fais une nouvelle requête, maintenant avec le numéro 2, il semble fonctionner, mais quand je défile horizontalement la table, le jtable semble planter et repeindre la première requête.Jtable pépin lors de la mise à jour du contenu

public GUIDetalleActividades(String cedula) { 
     this.cedula = cedula; 
     setTitle("Detalle Actividades"); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setBounds(100, 100, 597, 500); 
     contentPane = new JPanel(); 
     contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); 
     setContentPane(contentPane); 
     contentPane.setLayout(null); 

     JLabel lblAContinuacinSe = new JLabel(
       "A continuaci\u00F3n se muestra un listado con todos los proyectos a su cargo, en el siguiente campo podr\u00E1 consultar"); 
     lblAContinuacinSe.setBounds(10, 11, 570, 14); 
     contentPane.add(lblAContinuacinSe); 

     JLabel lblParaVerLos = new JLabel("las actividades de un determinado proyecto"); 
     lblParaVerLos.setBounds(10, 29, 407, 14); 
     contentPane.add(lblParaVerLos); 

     //creating upper table with resultset 

     table = new JTable(cons.tablaConsultaProyectosACargo(cedula)); 

     JScrollPane scrollPane = new JScrollPane(table, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, 
       JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); 
     scrollPane.setBounds(21, 86, 539, 134); 

     contentPane.add(scrollPane); 
     table.getColumnModel().getColumn(1).setPreferredWidth(100); 
     table.getColumnModel().getColumn(2).setPreferredWidth(100); 
     table.getColumnModel().getColumn(3).setPreferredWidth(100); 
     table.getColumnModel().getColumn(4).setPreferredWidth(100); 

     scrollPane.setViewportView(table); 

     JLabel lblConsultarActividadNoproyecto = new JLabel("Consultar actividad No.proyecto:"); 
     lblConsultarActividadNoproyecto.setBounds(21, 244, 174, 14); 
     contentPane.add(lblConsultarActividadNoproyecto); 

     txtnum = new JTextField(); 
     txtnum.setBounds(192, 241, 86, 20); 
     contentPane.add(txtnum); 
     txtnum.setColumns(10); 

     JButton btnConsultar = new JButton("Consultar"); 
     btnConsultar.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent arg0) { 

       //pressing the button should repaint the table with new data and no glitches 
       showtable2(txtnum.getText()); 
      } 
     }); 
     btnConsultar.setBounds(301, 240, 89, 23); 
     contentPane.add(btnConsultar); 

    } 

    //creating table with default table model sent from the class that does all the queries 
    public void showtable2(String num) { 

     table_1 = new JTable(cons.tablaConsultaActividades(num)); 
     table_1.setEnabled(false); 
     JScrollPane scrollPane_1 = new JScrollPane(table_1, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, 
       JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); 
     scrollPane_1.setBounds(20, 310, 552, 134); 
     table_1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); 
     contentPane.add(scrollPane_1); 
     table_1.getColumnModel().getColumn(1).setPreferredWidth(100); 
     table_1.getColumnModel().getColumn(2).setPreferredWidth(100); 
     table_1.getColumnModel().getColumn(3).setPreferredWidth(100); 
     table_1.getColumnModel().getColumn(4).setPreferredWidth(100); 

     scrollPane_1.setViewportView(table_1); 

    } 

    public String getCedula() { 
     return cedula; 
    } 

    public void setCedula(String cedula) { 
     this.cedula = cedula; 
    } 
} 

enter image description here

enter image description here

enter image description here

+0

* dans la première image * vous avez oublié de poster des photos ... – Frakcool

+0

oui désolé le téléchargement, stackoverflow ne me laisse pas l'ajouter manuellement –

+1

Post liens, nous pouvons les éditer pour les faire afficher – Frakcool

Répondre

0

donc est le problème était dans le showtable2 vide, jamais recréer le champ du scrollpanel ou le modèle de table, il suffit de les delcare une fois et une table mise à jour modèle avec table.setmodel