Afficher JTable en JAVA

Résolu/Fermé
brain2005 Messages postés 31 Date d'inscription mercredi 15 août 2007 Statut Membre Dernière intervention 15 février 2009 - 24 août 2008 à 08:42
 paul - 4 janv. 2009 à 17:19
Bonjour,

je veux afficher les données d'un tableau dans un Jtable et chaque fois je clik sur un bouton le tableau va changer

// lign tableau contenant les données à afficher, ce tableau change lorsque je clik sans prob
String[][] lign = new String[][] {..........................................};

String[] cols = new String[] {"Min", "Max", "Avg" };

DefaultTableModel model = new DefaultTableModel( lign, cols);

table.setModel(model);

table = new JTable(lign, cols);

le prob c à l'affichage: tout d'abord tout marche bien et les données s'affichent mais lorsque je clik sur bouton la Jtable reste la même alors que le tableau lign a été changé

où le problème???? aidez moi svp et merci d'avance
A voir également:

2 réponses

sandul Messages postés 3927 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 723
25 août 2008 à 09:36
Salut,

Pas très clair comme souci...
le prob c à l'affichage: tout d'abord tout marche bien et les données s'affichent mais lorsque je clik sur bouton la Jtable reste la même alors que le tableau lign a été changé <== absolument aucune idée concernant l'action à réaliser lorsque tu cliques sur ton bouton.

Concernant la création de la JTable: en reprenant ton code ci-dessus, essaie ceci:

String[][] lign = new String[][] {..........................................};
String[] cols = new String[] {"Min", "Max", "Avg" };
DefaultTableModel model = new DefaultTableModel( lign, cols);

table = new JTable();
table.setModel(model);


++
0
brain2005 Messages postés 31 Date d'inscription mercredi 15 août 2007 Statut Membre Dernière intervention 15 février 2009
25 août 2008 à 12:03
Salut,

ce que vous proposez n marche pas, rien n'est affiché dans ce cas.

mais enfin j'ai trouvé 1 solution : il faut remplacer DefaultTableModel model = new DefaultTableModel( lign, cols);

par ce là: model.setDataVector(lign, cols); et n'oublions pas d'initialiser model au début :

DefaultTableModel model = new DefaultTableModel( );


A+
0
bonjour , j'ai un probléme je me connecte à la BD à partir du programme en java j'ai insérer des ligne dans la BD mais le probléme c'est k'il m'affiche pas les attributs ( matricule,nom,prénom,tel,age) il m'affiche que les lignes que j'ai insérer dans la BD dans l'interface pouvez vous m'aidez SVP qu'est ce que je dois changer dans le code comment faire et merci d'avance

import java.awt.*;
import java.io.*;
import java.sql.*;
import javax.swing.*;
import java.util.*;


public class Interfacee extends JFrame {
JPanel panneau=new JPanel();
JTable table=new JTable();
Connection c = null;
Statement stm=null;
ResultSet rs = null;

public Interfacee()
{
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
c = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "system", "123");
System.out.println("Connection établie");
} catch (ClassNotFoundException e)
{
System.out.println("Oracle :Pilotes non chargés");
} catch (SQLException ex)
{
System.out.println("Oracle : Connection non établie");
}

Vector <String> NomCol=new Vector<String>();
NomCol.add("matricule");
NomCol.add("nom");
NomCol.add("prénom");
NomCol.add("tel");
NomCol.add("age");
Vector <Object> ob=new Vector<Object>();

try {
stm=c.createStatement();
rs=stm.executeQuery("Select * from enseignant ");
while(rs.next()){
Vector <Object> ob1=new Vector<Object>();
ob1.add(rs.getString("matricule"));
ob1.add(rs.getString(2));
ob1.add(rs.getString(3));
ob1.add(rs.getInt(4));
ob1.add(rs.getInt(5));
ob.add(ob1);
}
} catch (SQLException e)
{
System.out.println("Erreur d'affichage ");
}


table.setModel(new javax.swing.table.DefaultTableModel(ob,NomCol));
panneau.add(table);
this.add(panneau,BorderLayout.CENTER);
setBounds(400,400,400,400);
this.setTitle("Gestion des enseignants");
}



public static void main(String[] args) throws IOException, SQLException{
Interfacee I=new Interfacee();
I.setVisible(true);


}
}
0