IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

afficher tableau


Sujet :

AWT/Swing Java

  1. #1
    Candidat au Club
    Inscrit en
    Février 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut afficher tableau
    Bonjour
    je cherche à faire un programme commposé de thread qui mettent a jour des ressources partagées ( tableaux de nombres dans un objet).

    Maintenant je voudrait afficher ces tableaux ds une fenetre et faire en sorte qu'ils soient mis à jour dynamiquement.
    Je compte creer un thread qui affiche les tableaux et les raffraichissent regulièrement.

    Existe il une méthode ds JTable a qui on peut passer un tableau 2D en paramètres et qui l'affiche directement ?


    merci

  2. #2
    Membre habitué
    Inscrit en
    Septembre 2003
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 174
    Points : 194
    Points
    194
    Par défaut
    Salut,

    Tu peux utiliser ce constructeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JTable(Object[][] rowData, Object[] columnNames)
    sylvain_2020

  3. #3
    Candidat au Club
    Inscrit en
    Février 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    oki si je comprend bien, il faut auparavant que mon tableau de reel soit converti en tableau d'objet... ensuite je pourrai appeler le constructeur que tu m as indiquer ?

  4. #4
    Membre éclairé Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Points : 680
    Points
    680
    Par défaut
    Ton tableau de réels est un tableau de Object.

    Object est l'ancêtre de tout! Oh Père Object
    Pour chaque langage existe une faq / N'oubliez pas de lire les règles du forum

  5. #5
    Candidat au Club
    Inscrit en
    Février 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    désolé de faire le boulet ;-)
    mais quand on débute c'est souvent la misère.
    mais j arrive a rien avec mon tableau :

    j ai un objet qui contien un tableau (double[48] tableau) et je veux afficher ce tableau dans une fenetre et le rafraichir périodiquement.

    Bref on m a conseille d'utiliser ce constructeur : JTable(Object[][] rowData, Object[] columnNames)

    mais la ou je n'arrive pas c'est a mettre mon tableau de reels dans le Jtable construit par JTable table = new JTable(rowData, columnNames);

    lorsque j essai on me dis que je peux pas mettre de réel dans un Objet....

    merci de votre aide.

  6. #6
    Membre éclairé Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Points : 680
    Points
    680
    Par défaut
    Donne-nous voir un bout de ton code... Et pas besoin de t'excuser, on a tous commencé un jour
    Pour chaque langage existe une faq / N'oubliez pas de lire les règles du forum

  7. #7
    Candidat au Club
    Inscrit en
    Février 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     
    import javax.swing.*;
     
    public class affichage {
     
    	affichage(ShRessource Sh){
    		Ressource = Sh.cell;
                    colone=Sh.col;
    		}
    	Object [][] Ressource;
    	Object [] colone;
     
    	JTable table = new JTable( Ressource, colone); 
     
    }
    mon tableau Ressource est un tableau 1D contenant 48 nombres réels qui sont mis a jour par des threads concurents dans un objet ShRessource
    Colones est un tableau d'entiers de 1 a 48.dans le constructeur de affichage, eclipse me dit : Type mismatch: cannot convert from double[] to Object[][]

    je cherche a afficher le tableau ressource ds une fenetre et a voir l'évolution des valeurs que j'y stocke au cours du temps....

  8. #8
    Membre éclairé Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Points : 680
    Points
    680
    Par défaut
    Et tu peux compiler ca??

    Note

    1. le nom des classes commencent par des majuscules (par convention)
    2. Exemple de JTable:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    String [][] data = {
     {"col1","col2","col3"}//ligne 1 de ta JTable
     {"col1","col2","col3"}//ligne 2 de ta JTable
     {"col1","col2","col3"}//ligne 3 de ta JTable
    };
    String [] colName = {"Titre col 1","Titre col 2","Titre col 3"};
     
    JTable table = new JTable(data,colName);
    data peut être de n'importe quel type référencé

    double est un type primitif je ne sais pas si tu peux passer directement à la construction un tableau de double, je ne peux pas tester là dslé.
    Pour chaque langage existe une faq / N'oubliez pas de lire les règles du forum

  9. #9
    Candidat au Club
    Inscrit en
    Février 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    ok mais justement ds la 1ere ligne de ma JTable je voudrai mettre 1 tableau 1D de reels deja tout construit
    idem en 2 ligne...
    comment je peux contrsuire tt cela ?

  10. #10
    Membre éclairé Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Points : 680
    Points
    680
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    int data[2][3]={
     {1,2,3}
     {6,7,8}
    };
    String colName = ....
     
    JTable table = new JTable(data,colName);
    Pour chaque langage existe une faq / N'oubliez pas de lire les règles du forum

  11. #11
    Candidat au Club
    Inscrit en
    Février 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    On se rapproche !

    la mon code a cette tete la :

    import javax.swing.*;

    public class Affichage {

    affichage(ShRessource Sh){
    data = Sh.cell;
    }
    double[] data;
    String [] colone={"col1","col2","col3"};

    JTable table = new JTable( data, colone);

    }

    cell est un tableau 1D de reel de l objet Sh.


    mais eclipse me dit "the constructor JTable(double[], String[]) is undefined"
    et la je ne comprend pas ce qui merde.

  12. #12
    Membre éclairé Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Points : 680
    Points
    680
    Par défaut
    essaie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    JTable table = new JTable((Object)data,colonne);
    ou bien remplacer la ligne (j'amierais bien tester ce que je dis avant de poster mais désolé):

    Si t'es sous Java 5 l'autoboxing devrait entrer dans le jeu
    Pour chaque langage existe une faq / N'oubliez pas de lire les règles du forum

  13. #13
    Candidat au Club
    Inscrit en
    Février 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Hélas rien n y fait !
    il y a toujours une erreur du genre The constructor JTable(Double[], String[]) is undefined
    ou la même avec Object...

  14. #14
    Membre éclairé Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Points : 680
    Points
    680
    Par défaut
    Ehe... Logique...

    Le constructeur est de deux dimensions.

    ensuite il faut le remplir est construire ta JTable
    Pour chaque langage existe une faq / N'oubliez pas de lire les règles du forum

  15. #15
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par amphore
    Hélas rien n y fait !
    il y a toujours une erreur du genre The constructor JTable(Double[], String[]) is undefined
    ou la même avec Object...
    Le premier paramètre est un tableau de tableau : Object[][]...

    Par contre dans ton code tu lui passes un tableau non initialisé (donc null), ce qui n'est pas très propre...

    Ce constructeur de JTable ne doit être utilisé que pour afficher des données statique initialisé avant de créer la JTable...

    Si tu dois modifier les éléments dynamiquements, il faut passer un un TableModel.

    Pour cela tu peux jeter un coup d'oeil à ce post, voir utiliser directement un DefaultTableModel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String [] colone={"col1","col2","col3"};
    DefaultTableModel model = new DefaultTableModel(colone, 0);
    JTable table = new JTable(model);
    Puis utiliser addRow() pour ajouter une ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    model.addRow(new Double[]{0.1,0.2,0.3});
    a++

  16. #16
    Candidat au Club
    Inscrit en
    Février 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    oki la methode pollux faisait qu'eclipse ne detectait plus d'erreur mais a l'execution ca merdait. car le tableau n'etait pas initisaliser....

    je vais essayer de un TableModel.

    simplement je voudrais savoir si je peux avec ajouter dans un ligne mon tableau Sh.cell deja crée ?

Discussions similaires

  1. afficher tableau avec bouton option
    Par angel84 dans le forum VB.NET
    Réponses: 0
    Dernier message: 12/02/2009, 15h12
  2. Réponses: 1
    Dernier message: 06/05/2008, 10h12
  3. [JTextfield] Afficher tableau
    Par dsryam dans le forum Composants
    Réponses: 5
    Dernier message: 19/04/2008, 20h27
  4. [FPDF] Afficher tableau dynamique
    Par Mo_Poly dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 13/03/2008, 21h46
  5. afficher tableau sans interface graphique
    Par christophe_halgand dans le forum MATLAB
    Réponses: 5
    Dernier message: 11/03/2008, 12h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo