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 :

Affichage d'un label en fonction d'un tableau bd


Sujet :

AWT/Swing Java

  1. #1
    Nouveau membre du Club
    Profil pro
    developeur
    Inscrit en
    Août 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : developeur

    Informations forums :
    Inscription : Août 2004
    Messages : 57
    Points : 34
    Points
    34
    Par défaut Affichage d'un label en fonction d'un tableau bd
    Bonjour a tous, tout d'abord merci a tous pour ce site que je parcours très souvent et qui m'a deja beaucoup aider

    Néamoins je reste bloqué sur un probleme que je n'arrive pas a resoudre.

    Voila j'ai donc un jTable qui affiche les informations d'une table de données.
    J'ai donc une classe Fenetre_FP ou est affiché le tableau (classe Tableau).
    J'aimerais que , lorsque l'utilisateur clique sur le tableau (donc sur une ligne) que 3 labels s'affichent sur la Fenetre_FP en indiquant des informations supplémentaires.
    J'ai donc créer une méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
        public void valueChanged(ListSelectionEvent e) {
        int clique = table.getSelectedRow();
        System.out.println(clique);
    De cette maniere j'arrive a savoir quelle est la ligne cliquée par l'utilisateur. Mais malheuresement je n'arrive pas a sortir de cette classe pour affichée le numéro de ligne sur la Fenetre_FP.

    Merci d'avance a tous

  2. #2
    Membre averti Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Points : 409
    Points
    409
    Par défaut
    Bonjour,
    Je ne comprend le "sortir de cette classe", ta methode est une methode de la classe Fenetre_FP?
    Pourquoi ca marche jamais?Vive le café!

  3. #3
    Nouveau membre du Club
    Profil pro
    developeur
    Inscrit en
    Août 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : developeur

    Informations forums :
    Inscription : Août 2004
    Messages : 57
    Points : 34
    Points
    34
    Par défaut
    j'ai 2 classes : une fenetre_fp et l'autre tableau.
    j'appelle la classe tableau depuis la fenetre_fp pour créer le tableau.
    mais je n'arrive pas a recupérer la ligne selectionnée depuis la classe fenetre_fp.

  4. #4
    Membre averti Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Points : 409
    Points
    409
    Par défaut
    Ta methode de récupération de ligne est donc dans ta classe tableau non?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    De ta classe fenetre tu peux donc faire ceci non?:
    int nb = tableau.tamethode();//si ta methode renvoie un int
    Pourquoi ca marche jamais?Vive le café!

  5. #5
    Membre averti Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Points : 409
    Points
    409
    Par défaut
    désolé j'ai loupé la balise
    Pourquoi ca marche jamais?Vive le café!

  6. #6
    Nouveau membre du Club
    Profil pro
    developeur
    Inscrit en
    Août 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : developeur

    Informations forums :
    Inscription : Août 2004
    Messages : 57
    Points : 34
    Points
    34
    Par défaut
    euh...ca ne marche pas ;'(

    je créer donc le tableau depuis fenetre_fp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SimpleTableDemo tab = new SimpleTableDemo("3/Id/Nom/prenom/select * from clients order by id");
    le model est créee depuis la classe SimpleTableDemo :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    final JTable table = new JTable(model);
    et l'evenement de selection de la ligne se fait depuis la classe SimpleTableDemo :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     public void valueChanged(ListSelectionEvent e) {
        int clique = table.getSelectedRow();
        System.out.println(clique);
    et j'aimerai afficher des labels depuis la classe Fenetre_FP ^^
    Merci a tous pour votre aide

  7. #7
    Membre averti Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Points : 409
    Points
    409
    Par défaut
    A mon avis tu ferais mieux de mettre le code de la selection de ligne dans ta class fenetre,si j'ai bien compris c'est là ou tu creer ton JTable.Essaie ce code :
    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
    17
    18
    19
    20
    21
     
    ListSelectionModel rowSM = TonJTable.getSelectionModel();
     
    		rowSM.addListSelectionListener(new ListSelectionListener() {
     
        		public void valueChanged(ListSelectionEvent e) {
     
            		if (e.getValueIsAdjusting()) return;
     
            		ListSelectionModel lsm =(ListSelectionModel)e.getSource();
     
            		if (lsm.isSelectionEmpty()) {
     
            		}
            		else {
     
                		sr = lsm.getMinSelectionIndex();
     
            		}
        		}
    		});
    sr étant un int correspondant au numéro de la ligne.
    Donc si tu met ce code dans Fenetre_FP, il sera à présent plus facile de creer tes JLabels en fonction de la variable "sr":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if(sr==1){
         Lab.setText("Lab1");//si ton JLabel est déjà creer
        // JLabel lab1 = new JLable("Lab1");//si il n'était pas encore creé
     }
    .
    .
    .
    Pourquoi ca marche jamais?Vive le café!

  8. #8
    Nouveau membre du Club
    Profil pro
    developeur
    Inscrit en
    Août 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : developeur

    Informations forums :
    Inscription : Août 2004
    Messages : 57
    Points : 34
    Points
    34
    Par défaut
    en fait le jTable est créer dans la classe SimpleTableDemo.
    Jai essayer ton code :

    "Fenetre_Fp.java" : impossible de trouver le symbole ; symbole : méthode getSelectionModel(), emplacement : classe pressing_alpha.SimpleTableDemo en ligne 115, colonne 37

    "Fenetre_Fp.java" : impossible de trouver le symbole ; symbole : classe ListSelectionListener, emplacement : classe pressing_alpha.Fenetre_Fp en ligne 117, colonne 47
    il ne trouve pas la méthode getSelectionModel dans SimpleTableDemo,ce qui est logique puisqu'elle n'existe pas .
    Dois je la créee? que dois je mettre dedant?
    merci je suis vraiment perdu la :s

  9. #9
    Membre averti Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Points : 409
    Points
    409
    Par défaut
    Ton SimpleTableDemo c'est juste un TableModel non?
    Pourquoi ca marche jamais?Vive le café!

  10. #10
    Membre averti Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Points : 409
    Points
    409
    Par défaut
    Bon je fais un recapitulatif de comment je vois les choses:
    tu as ta classe fenetre_fp, dedans tu met ceci:
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    SimpleTableDemo  mod = new SimpleTableDemo (10);//pour 10 lignes, c'est qu un exemple
     
    		TaTable = new JTable(mod);
     
    		ListSelectionModel rowSM = Tatable.getSelectionModel();
     
          rowSM.addListSelectionListener(new ListSelectionListener() {
     
              public void valueChanged(ListSelectionEvent e) {
     
                  if (e.getValueIsAdjusting()) return;
     
                  ListSelectionModel lsm =(ListSelectionModel)e.getSource();
     
                  if (lsm.isSelectionEmpty()) {
     
                  }
                  else {
     
                      sr = lsm.getMinSelectionIndex();
     
                  }
              }
          });
    Et ta classe SimpleTableDemo dans le cas où c'est un AbstractTableModel:
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
     
    class SimpleTableDemo extends AbstractTableModel{
     
    	int nbl=0;
    	public ModelTable2(int nb){
     
    	nbl=nb;
     
     
     
     
    	}            
     
    	Object[][] rowData =new String[100000][2];
     
    	public String getColumnName(int col) {
     
    		String columnNames[] = {"Nom","Prénom"};
     
            return columnNames[col].toString();
     
        }
        public int getRowCount() { 
     
     
        return nbl; 
     
        }
     
        public int getColumnCount() { return 2; }
     
        public Object getValueAt(int row, int col) {
     
            return rowData[row][col]; 
     
        }
     
        public boolean isCellEditable(int row, int col){ return false; }
     
        public void setValueAt(Object value, int row, int col) {
     
           	rowData[row][col] = value;
     
        	fireTableCellUpdated(row, col);
     
        }
     
     
     
    }
    Mais pour moi il faudrait donc que tu creer ton JTable dans ta class fenetre comme ci-dessus vu que c'est dans cette frame qu'il s'affiche.Enfin peut être que quelqu'un aurait une meilleur solution
    Pourquoi ca marche jamais?Vive le café!

  11. #11
    Nouveau membre du Club
    Profil pro
    developeur
    Inscrit en
    Août 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : developeur

    Informations forums :
    Inscription : Août 2004
    Messages : 57
    Points : 34
    Points
    34
    Par défaut
    euh je comprends plus la...

    moi ce que j'aimerai c'est rajouter un listener sur le tableau créer.
    Le probleme c'est que j'arrive a savoir quelle ligne est selectionnée mais seulement depuis la classe SimpleTableDemo, je n'arrive pas a savoir quelle ligne est selectionnée depuis la classe Fenetre_FP.

  12. #12
    Nouveau membre du Club
    Profil pro
    developeur
    Inscrit en
    Août 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : developeur

    Informations forums :
    Inscription : Août 2004
    Messages : 57
    Points : 34
    Points
    34
    Par défaut
    quelqu'un aurait il une idée svp?
    merci

  13. #13
    Membre averti Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Points : 409
    Points
    409
    Par défaut
    re désolé j'ai pas pu répondre avant mais tu me dis que quand tu creer une methode dans ton simpleTabDemo par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public int renvoie_lig(){
     
    return clique;
     
    }
    Et ensuite dans ta class fenetre tu fais ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int nb = tab.renvoie_lig();
    ca ne fonctionn pas?
    Pourquoi ca marche jamais?Vive le café!

  14. #14
    Nouveau membre du Club
    Profil pro
    developeur
    Inscrit en
    Août 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : developeur

    Informations forums :
    Inscription : Août 2004
    Messages : 57
    Points : 34
    Points
    34
    Par défaut
    euh, presque ^^ je récupère donc la premiere valeur par defaut (0) de la ligne selectionnée.
    Mais comment faire en sorte que cette valeur change a chaque clique de souris depuis la fenetre_fp?

    j'ai essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
          public void mouseClicked(MouseEvent e) {
            // saySomething("Mouse clicked (# of clicks: "
              //            + e.getClickCount() + ")", e);
              int nb = tab.renvoie_lig(); 
         System.out.println("Affichage depuis FP :"+nb);
          }
    mais le probleme c'est qu'il ne connait plus tab, vu qu'il est dans une autre méthode de la classe fenetre_fp :s

  15. #15
    Nouveau membre du Club
    Profil pro
    developeur
    Inscrit en
    Août 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : developeur

    Informations forums :
    Inscription : Août 2004
    Messages : 57
    Points : 34
    Points
    34
    Par défaut
    bon, apres plusieurs prises de tetes ^^ j'ai reussi a faire qqch.

    Mais il me reste un dernier souci, j'arrive a avoir l'affichage de la ligne selectionnée depuis la fenetre_fp. Mais seulement lorsque je suis sur une zone hors tableau avec la souris.
    N'est il pas possible de controler toutes les actions souris de la fenetre? :s

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/03/2006, 19h51
  2. Réponses: 3
    Dernier message: 10/01/2006, 14h01
  3. [ImageMagick] Affichage d'image avec la fonction imagejpeg()
    Par yuri dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 16/12/2005, 13h40
  4. Affichage du contenu label
    Par ghyosmik dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 21/09/2005, 12h33
  5. Affichage de mon site en fonction de l'écran
    Par mobeida dans le forum Webdesign & Ergonomie
    Réponses: 1
    Dernier message: 07/08/2005, 18h08

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