2011-07-18 10 views
0

il y a mon code, il ne fonctionne pas parce que le montre la table emty sans aucune ligne colonnes ir quelqu'un peut tel où est le problèmeinsérer des données à la table de base de données

public class test extends JFrame { 

    private final JButton pridetiNaujaButton = new JButton(); 
    private final JButton pasalintiButton = new JButton(); 
    private final JButton redagotiButton = new JButton(); 
    private final JButton paieskaButton = new JButton(); 
    final GtFromDb baz=new GtFromDb(); 
    private Vector <Vector<String>> data; 
    private Vector<String> header; 
    private final JScrollPane scrollPane = new JScrollPane(); 
    private final JTable table = new JTable(data,header); 
    public static void main(String args[]) { 
     try { 
      test frame = new test(); 
      frame.setVisible(true); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

    } 

    /** 
    * Create the frame 
    */ 
    public test() { 
     super(); 
     setBounds(100, 100, 781, 412); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     try { 
      jbInit(); 
     } catch (Throwable e) { 
      e.printStackTrace(); 
     } 


      GtFromDb db=new GtFromDb(); 
      try { 
       data=db.getClient(); 
      } catch (Exception e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      }   
      header=new Vector<String>(); 
      header.add("Imones pavadinimas"); 
      header.add("vardas"); 
      header.add("pavarde"); 
      header.add("salis"); 
      header.add("Adresas"); 
      header.add("telefonas"); 
     } 


    private void jbInit() throws Exception { 
     getContentPane().setLayout(null); 

     getContentPane().add(pridetiNaujaButton); 
     pridetiNaujaButton.setText("Prideti nauja"); 
     pridetiNaujaButton.setBounds(0, 0, 106, 26); 

     getContentPane().add(pasalintiButton); 
     pasalintiButton.setText("Pasalinti"); 
     pasalintiButton.setBounds(112, 0, 106, 26); 

     getContentPane().add(redagotiButton); 
     redagotiButton.setText("Redagoti"); 
     redagotiButton.setBounds(224, 0, 106, 26); 

     getContentPane().add(paieskaButton); 
     paieskaButton.setText("Paieska"); 
     paieskaButton.setBounds(336, 0, 106, 26); 

     getContentPane().add(scrollPane); 
     scrollPane.setBounds(10, 48, 745, 316);  
     scrollPane.setViewportView(table); 

    } 
    public class GtFromDb 
    { Connection connect; 
     Statement zadanie; 
     String sql; 
     ResultSet dane; 
    // Map<String,String> carmap =new HashMap<String,String>(); 
    // Map<String,String> ownmap =new HashMap<String,String>(); 
    void DbConnection() throws SQLException 
    { 
     String baza="jdbc:odbc:dielektric_repair"; 
     try 
     { 
     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
     }catch(Exception e){System.out.println("Connection error");} 
     connect = DriverManager.getConnection(baza,"",""); 
    } 
    public Vector getClient() throws Exception 
    { 
    Vector <Vector<String>> clientVector=new Vector<Vector<String>>(); 
    try 
    {DbConnection(); 
    PreparedStatement zadanie = connect.prepareStatement("SELECT * FROM Clients"); 

    dane = zadanie.executeQuery(); 
    while(dane.next()) { 
    Vector <String> client=new Vector<String>(); 
    String imonesPav=dane.getString("Imones_pavadinimas"); 
    String vardas = dane.getString("Vardas"); 
    String pavarde = dane.getString("Pavarde"); 
    String salis = dane.getString("Salis"); 
    String adresas=dane.getString("Adresas"); 
    String telefonas = dane.getString("Telefonas"); 
    if (imonesPav != null) {imonesPav = imonesPav.trim(); 
    client.add(imonesPav);} 
    if (vardas != null) {vardas = vardas.trim(); 
    client.add(vardas);} 
    if (pavarde != null) {pavarde = pavarde.trim(); 
    client.add(pavarde);} 
    if (salis != null) {salis =salis.trim(); 
    client.add(salis);} 
    if (adresas != null) {adresas =adresas.trim(); 
    client.add(adresas);} 
    if (telefonas != null) {telefonas = telefonas.trim(); 
    client.add(telefonas);} 
    }zadanie.close(); 
    }catch(SQLException e){} 
    return clientVector;  
    } 
    } 
    public JScrollPane getScrollPane() { 
     return scrollPane; 
    } 
} 
+0

Que faites-vous avec les données obtenues à partir de la base de données? D'un autre côté, étendre JFrame, en utilisant des vecteurs ne sont pas des pratiques recommandées. – asgs

Répondre

1

Il y a quelques problèmes:

1) Vous n'ajoutez pas les objets client au clientVector. Utilisez clientVector.add(client) pour ajouter le client après chaque itération du ResultSet. 2) Vous avez initialisé la table avec les variables data et header. Tout d'abord, les data et initialiser les variables header puis le table, comme celui-ci:

private final JTable table ; 

public test() { 
    super(); 
    setBounds(100, 100, 781, 412); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    header=new Vector<String>(); 
    header.add("Imones pavadinimas"); 
    header.add("vardas"); 
    header.add("pavarde"); 
    header.add("salis"); 
    header.add("Adresas"); 
    header.add("telefonas"); 

    GtFromDb db=new GtFromDb(); 
    try { 
     data=db.getClient(); 
    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    table = new JTable(data,header);  

    try { 
     jbInit(); 
    } catch (Throwable e) { 
     e.printStackTrace(); 
    } 
} 

3) Vous attrapez un SQLException et ne rien faire avec lui. Donc, s'il y a une erreur lors de l'exécution de la requête, vous ne le saurez pas. Essayez d'imprimer la trace de pile:

try{ 
    ... 
    dane = zadanie.executeQuery(); 
}catch(SQLException e) { 
    e.printStackTrace(); 
} finally { 
    zadanie.close(); 
} 
+0

OP a été remarqué à ce sujet dans votre "même question" http://stackoverflow.com/questions/6730701/java-set-data-to-jtable-from-database +1 – mKorbel

+0

et s'il vous plaît modifier 'clientVector.add (client) '' '' data.add (client) ' – mKorbel

+0

J'ai fait tous les changements mais je n'ai toujours pas montré d'info –

Questions connexes