2017-06-14 2 views
0

Je voulais implémenter une Table dans mon interface graphique pour montrer la liste des patients de ma base de données. Cela ne me montre rien. Quelqu'un a une idée de pourquoi ça ne marche pas? Je suis presque sûr que ce code devrait fonctionner. J'espère que quelqu'un peut m'aider.DefaultTableModel java + sql

private void initTable() throws SQLException { 

    Vector columnNames = new Vector(); 
    Vector rowData = new Vector(); 

    DefaultTableModel tableModel = new DefaultTableModel(rowData, columnNames); 
    table.setModel(tableModel); 
    table.setBounds(10,410,50,20); 
    JScrollPane scrollPane = new JScrollPane(table); 
    add(scrollPane, BorderLayout.SOUTH); 

    conn = Connector.connection(); 

    PreparedStatement stm; 
    String query = "Select * from patient;"; 
    stm = conn.prepareStatement(query); 
    try { 
     rs = stm.executeQuery(); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 
    int i = 0; 
    while(rs.next()){ 
     rs.getString(i); 
     rowData.add(i,rs); 
     i++; 
    } 



    columnNames.add("PatientID"); 
    columnNames.add("Surname"); 
    columnNames.add("Lastname"); 
    columnNames.add("Birthdate"); 
    columnNames.add("Adress"); 
    columnNames.add("Height"); 
    columnNames.add("Weight"); 
    columnNames.add("Gender"); 
    columnNames.add("Emergencycontact"); 
    columnNames.add("Emergencynumber"); 
    columnNames.add("roomNr"); 


    conn.close(); 
} 

Cordialement Samir

Répondre

0

Quand vous dites "il ne montre rien", est-il littéral? Sans faire des suppositions, je recommande de vérifier ci-dessous des points:

  1. Lorsque vous utilisez Swing, assurez-vous avez ci-dessous les codes dans votre JFrame:

    frame.setContentPane(container); 
    frame.pack(); 
    frame.setVisible(true); 
    
  2. Vous avez créé un DefaultTableModel après le vecteur de columnNames est affecté avec des données, essayez de déplacer l'attribution vers l'avant.

  3. Vous avez mis à jour le vecteur de données de table après la création du DefaultTableModel. Essayez

    tableModel.fireTableChanged();