Afficher ma table dans mon interface

othmani
Afficher ma table dans mon interface

Salut tout le monde,
Je veux après récupération (récursivement) des tuples qui existent dans une table dans une base de données sql, les afficher dans un tableau qui sera créer dans mon interface (je sais pas le nombre des enregistrement d'avance)
si vous avez des idées aider moi je suis vraiment bloquée
Merci d'avance

ranirost

c un pb d'algorithme
tu a beacoup de possibilités, la plus simple est:
Avant de commencer l'affichage et la creation de vtre table, lancer un boucle sur le tableau de la base de donné qui compte le nombre de line, une fois términé tu peut le récupérer.

fredericmazue

Quote:
lancer un boucle sur le tableau de la base de donné qui compte le nombre de line

Heu comme tu dis c'est une question d'algorithme, et aussi d'utilisation des fondamentaux. Parce que pour connaître le nombre de lignes d'une table il y a COUNT(*) n'est-ce pas ? ;)
Exemple:
SELECT COUNT(*) FROM la_table_pleine_de_lignes;
othmani

le probleme est dans l'affichage:
j'ai pu faire un Frame à part qui permet d'accéder à la base et d'afficher la table, pour le moment je suis très satisfaite du résultat que j'ai, mais le problème ici c'est comment en cliquant sur un bouton (exactement c'est un Item) l' "événement" de ce dernier sera l'affichage de cette table (ce frame) au centre de mon interface qui contenait déjà un menu et une arborescence à gauche.

Pierro

Salut,

Je pense que tu n'est pas assez précise sur ton problème. En tout cas je ne vois pas bien ce qui te pose problème quoique...

Tu parles pas mal de Frames, ton problème ne serait pas relatif à du javascript plûtot qu'à du Java ?

Sinon ta fenêtre doit comporter un panel avec un layout. Lors de ton évènement tu ajoute ta table à la partie du layout correspondant au centre de ta fenêtre et l'affaire est joué.

Ou alors j'ai vraiment rien compris... :P

fredericmazue

Quote:
En tout cas je ne vois pas bien ce qui te pose problème quoique...

Prends le temps de lire tous les posts d'othmani sur ce forum, et tu vas comprendre ce qui pose problème ;) :lol:
othmani

voici la classe qui me permet de récupérer la table:

public class gest_eq extends JFrame 
{
    private static final long serialVersionUID = 1L;
 
    private JPanel jContentPane = null;
    base b=new base();  //  @jve:decl-index=0:
 
    public gest_eq() {
        super();
        initialize();        
        Vector columnNames = new Vector();
        Vector data = new Vector(); 
        try
        {
          //  Connect to the Database 
          b.connexionBD();          
          //  Read data from a table
 
          String sql = "Select * from MaTable";
          Statement stmt = b.con.createStatement();
            
          ResultSet rs = stmt.executeQuery( sql );
          ResultSetMetaData md = rs.getMetaData();
          int columns = md.getColumnCount();
 
          //  Get column names
          for (int i = 1; i <= columns; i++)
            {
                columnNames.addElement( md.getColumnName(i) );
            }
 
            //  Get row data
            while (rs.next())
            {
                Vector row = new Vector(columns);
 
                for (int i = 1; i <= columns; i++)
                {
                    row.addElement( rs.getObject(i) );
                }
 
                data.addElement( row );
            }
 
            rs.close();
            stmt.close();
        }
        catch(Exception e) {System.out.println( e );}
 
        //  Create table with database data
 
        JTable table = new JTable(data, columnNames);
 
        JScrollPane scrollPane = new JScrollPane( table );
        getContentPane().add( scrollPane );
 
        JPanel buttonPanel = new JPanel();
        getContentPane().add( buttonPanel, BorderLayout.SOUTH );
    }
 
    private void initialize() 
    {
        this.setSize(300, 200);
        this.setContentPane(getJContentPane());
        this.setTitle("JFrame");
    }
 
    private JPanel getJContentPane() 
    {
        if (jContentPane == null) 
        {
            jContentPane = new JPanel();
            jContentPane.setLayout(new BorderLayout());
        }
        return jContentPane;
    }
     public static void main(String[] args)
        {
            gest_eq frame = new gest_eq();
            frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
            frame.pack();
            frame.setVisible(true);
        }
}  

[img]http://C:\imprime_ecran.jpeg[/img]
normalement en cliquant sur "Scanner" la table subit des modifications et donc elle doit etre affichée pour que l'utilisateur soit informé.
je veux l'afficher à droite;
Niroken
Une aide:)

Bonjour

J'ai récupéré ton code et je l'ai compilé/éxécuter sur mon poste
cela fonctionne bien mais je t'avoue que ton JTable prend tout
l'écran aussi, il n'y a pas de boutons d'actualisation.

Enfin en admettant que j'ai bien compris ton problème
voici ce que je te suggère:

1) Une classe JFrame contenant dans un premier temps
deux JPanels, un a droite et un a gauche.
celui de gauche tu lui met un JButton, celui de droite la classe
héritant de JPanel qui contiendra ton JTable.

->A l affichage il n'y aura que le boutton puisque tu n'auras pas
initialisé ton JPanel de droite.

En cliquant sur le JButton -> tu initialize ton JPanel en lui passant
les datas extraites de ta table que tu ranges dans ton JTable.
Pour finir tu fais appel a "this.repaint()" pour forcer le réaffichage.
Normalement cela devrait bien fonctionner.

Bonne chance

othmani

Merci pour votre aide
je fais essayer de faire ce que vous disiez et voir le resultat