Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2720 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [résolu]actualiser Jlist

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[résolu]actualiser Jlist

n°2020403
ulquiorra5
Posté le 01-09-2010 à 13:53:24  profilanswer
 

Bonjour
je cherche a actualiser une jlist lorsque je clique sur un item de mon jpopupMenu(qui modifie uniquement l ' etat de ma jlist sans rien rajouter ni supprimer)
seulement , je n ' y arrive pas
 
J ' ai tenté toute les methodes de rafraichissement possible , mais rien n ' y fait
Ca fonctionne par contre si je ferme mon prog et que je le ré ouvre , mais ce que je voudrais , c est que ca soit en temps réel
 
Merci de votre aide
 
voici ma classe qui actualise la Jlist
 

Code :
  1. public class MenuListe extends JPopupMenu implements ActionListener{
  2. private static final long serialVersionUID = 1L;
  3. public MenuListe()
  4. {
  5. super();
  6. createPopupMenu();
  7. }
  8.    
  9.     public void createPopupMenu() {
  10.         JMenuItem menuItem;
  11.      
  12.         menuItem = new JMenuItem("Marquer comme lu" );
  13.         menuItem.addActionListener(this);
  14.         this.add(menuItem);
  15.        
  16.     }
  17.     public void actionPerformed(ActionEvent e) {
  18.         JMenuItem source = (JMenuItem)(e.getSource());
  19.         if(source.getText().equals("Marquer comme lu" ))
  20.        
  21.  ((ListesPersonnalisesInterfaceMessage) InterfaceMessage.getInstance().getListeMessage().getModel()).marqueLu());
  22.        new ListesPersonnalisesInterfaceMessage(Main.inf.getConnexionImap());// il s agit du constructeur du modele de ma jlist que je tente d ' appeller pour la reactualiser
  23.         /*InterfaceMessage.getInstance().getListeMessage().repaint();
  24.         InterfaceMessage.getInstance().getListeMessage().revalidate();
  25.         InterfaceMessage.getInstance().getListeMessage().validate();
  26.         InterfaceMessage.getInstance().getListeMessage().updateUI();*/
  27.        
  28.     }


Message édité par ulquiorra5 le 03-09-2010 à 10:01:46
mood
Publicité
Posté le 01-09-2010 à 13:53:24  profilanswer
 

n°2020492
nain de ja​rdin
Posté le 01-09-2010 à 17:47:31  profilanswer
 

Tu n'as pas à invoquer le rafraîchissement toi même, c'est le modèle passé à la construction de ta JList qui est censé prévenir la vue qu'il a changé. Soit tu utilises un modèle prêt à l'emploi genre DefaultListModel, soit tu fais ton propre modèle mais il ne faut pas oublier d'invoquer les méthodes de notification (celles commençant par "fire" ).

n°2020538
ulquiorra5
Posté le 01-09-2010 à 20:15:00  profilanswer
 

Merci pour ta réponse.
Justement mon modèle hérite de DefaultListModel (donc les methodes fireXX sont automatisées) sauf qu ' il est rempli via une liste recupérée sur un serveur.
 
Je dois donc passer a nouveau par le constructeur du modele pour rafraichir la Jlist , or je vois pas comment faire
 
Merci de ton aide

n°2020643
nain de ja​rdin
Posté le 02-09-2010 à 09:38:23  profilanswer
 

Dans ton exemple, tu crées un nouveau modèle mais tu ne le passes pas à ta JList (setModel).
Mais tu n'es pas obligé de créer un nouveau modèle, tu peux te contenter de  mettre à jour le modèle existant avec les nouvelles données.

n°2020786
ulquiorra5
Posté le 02-09-2010 à 17:01:48  profilanswer
 

Merci de ton aide , ca fonctionne avec le setModel , mais que veux tu dire par actualiser le modèle ? car en fait pour voir l etat modifié de ma jlist , je suis obligé de parcourir un dossier contenant des fichiers( donc passer par le constructeur de mon modèle) , donc je ne sais pas si l ' actualisation fonctionne dans mon cas a part re parcourir le fichier( si tu as une autre méthode je suis preneur).

 

Merci encore


Message édité par ulquiorra5 le 02-09-2010 à 17:02:47
n°2020828
nain de ja​rdin
Posté le 02-09-2010 à 19:06:38  profilanswer
 

Interroge ton serveur ailleurs que dans ton constructeur de modèle, fait une méthode qui va bien et qui utilise remove/clear/add/etc de DefaultListModel. Et tu l'appelles au lieu de construire un autre modèle.
 
Si tu t'amuses à brancher/débrancher les modèles, va aussi falloir brancher/débrancher les listeners, etc. Ca va être le bordel quoi.

n°2020930
ulquiorra5
Posté le 03-09-2010 à 10:00:50  profilanswer
 

Ok , merci de ton aide
 
je me doutais bien que j' avais mal structuré mon appli lorsque j ' ai réalisé le diagramme de classe car j ' avais clairement des soucis de performance.
 
Je vais y remédier grâce a toi , merci vraiment
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [résolu]actualiser Jlist

 

Sujets relatifs
Actualiser => redirection[VBS] Actualiser Classeur Excel
Actualiser un prix automatiquement suivant la selection d'un poidsJList et focus
Rendre élément d'une JList non sélectionnable ?aide faire un lien entre Jlist et des TextField
Comment auto-actualiser une heure?Récuperation d'un objet dans un JList
Affichage d'un JList dans un JTextAreaactualiser sans renvoie en haut de la page
Plus de sujets relatifs à : [résolu]actualiser Jlist


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR