Accueil > Forum > > > > Ajout d'element dans une JList
Ajout d'element dans une JList
jeudi 30 janvier 2003 à 15:54:51 |
Ajout d'element dans une JList

jonathan100
|
Bonjour, Voici un peu de code: String[] tableau_tampon = {"coucou"}; JList ma_liste = new JList(tableau_tampon); Ce code va initialiser ma liste. Or lorsque je veux rajouter des elements, ces elements ecrasent la liste precedente, alors que je veux qu'ils soient juste rajouter. Disons que ce tableau sera construit avec des chaines construites a partir de paquets de donnes d'un reseau ethernet. La construction du tableau ne dois pas donc obligatoirement tourne en temps reel, mais va comporter plusierus lignes lors d'une seule construction. Si quelqu'un avait un algo... merci par avance. ++
|
|
jeudi 30 janvier 2003 à 17:14:23 |
Re : Ajout d'element dans une JList

JHelp
|
Pour faire ça, il vaut mieux définir ton ListModel, avec lui tu ajoutes et retire les données, comme tu le désires. Tu associes ce modèl à ta JList. Par exemple tu peux faire le modél ainsi : import javax.swing.ListModel; import javax.swing.event.ListDataListener; import javax.swing.event.ListDataEvent; import java.util.Vector;
/** * Modéle pour la liste */ public class Modele implements ListModel { //Stocke les données private Vector donnees=new Vector(); //Stocke les écouteurs de changement private Vector ecouteurs=new Vector(); /** * Construit un modéle vide */ public Modele() { } /** * Nombre de données dans le modéle */ public int getSize() { return donnees.size(); } /** * Renvoie la donnée à l'indice index */ public Object getElementAt(int index) { return donnees.elementAt(index); } /** * Ajoute une donnée */ public void addElement(Object element) { donnees.addElement(element); changement(); } /** * Enlève une donnée */ public void removeElement(Object element) { donnees.remove(element); changement(); } /** * Ajoute un écouteur */ public void addListDataListener(ListDataListener l) { ecouteurs.addElement(l); } /** * Retire un écouteur */ public void removeListDataListener(ListDataListener l) { ecouteurs.remove(l); } //Indique à un écouteur, qu'il y a eut un changement private void fire(ListDataListener ldl,ListDataEvent lde) { ldl.contentsChanged(lde); } //Indique à tous les écouteurs, qu'il y a eut un changement private void fire(ListDataEvent lde) { int nb=ecouteurs.size(); for(int i=0;i<nb;i++) fire((ListDataListener)ecouteurs,lde); } //A appelée pour signaler les changements private void changement() { fire(new ListDataEvent(this,ListDataEvent.CONTENTS_CHANGED,0,getSize()-1)); } }
|
Ensuite ta liste : import javax.swing.JList;
/** * Jlist facilement modifiable */ public class Liste extends JList { //Modéle de la liste private Modele modele=new Modele(); /** * Créée une liste vide */ public Liste() { setModel(modele); } /** * Ajoute une ligne */ public void ajoute(Object donnee) { modele.addElement(donnee); } /** * Ajoute plusieurs lignes */ public void ajoute(Object[] donnees) { for (int i = 0; i < donnees.length; i++) ajoute(donnees[i]); } /** * Renvoie le nombre de lignes */ public int nombreDonnee() { return modele.getSize(); } /** * Renvoie la donnée à l'indice indiqué */ public Object getDonnee(int indice) { return modele.getElementAt(indice); } /** * Retire la donnée */ public void retire(Object donnee) { modele.removeElement(donnee); } }
|
Tu n'as plus qu'alors à utiliser Liste à la place de ta JList. Si quelquechose dans mon code ne te semble pas clair n'ésites pas. JHelp
|
|
jeudi 30 janvier 2003 à 17:47:10 |
Re : Ajout d'element dans une JList

jonathan100
|
Je vais regarder tout cela. Je te contacterais si j'ai un probleme (et il y a des chances...). En tout cas merci pour ton aide. ++
|
|
vendredi 31 janvier 2003 à 11:50:47 |
Re : Ajout d'element dans une JList

jonathan100
|
Salut, Ton code marche, merci beaucoup! Cependant il me reste encore un petit probleme: celui de la taille! J'ai essaye dans le constructeur setSize, SetPrefferedSize, setMaximumSize, in ne vuet rien savoir. Lqa liste se trouve dans un conteneur Pane. Je ne peux pas plutot regler la taille du conteneur avec le Layout? Pariel j'ai essaye mais ca ne marche pas super... Par contre le conteneur n'a pas sa propore classe, il est cree dans le code de la fenetre, est-ce une erreur? D'avance merci. 
|
|
vendredi 31 janvier 2003 à 12:13:12 |
Re : Ajout d'element dans une JList

jonathan100
|
Autre erreur!! Voici mon code: Liste ma_liste = new Liste(); String str = new String("hello!"); public class fenetre extends JFrame { public fenetre() { ma_liste.ajoute(string_to_object(str)); } } Et bien ca il ne prend pas!  Il dit comme erreur que ma variable n'est pas declaree. Je ne comprends vraiment pas, ou c'est moi qui suis fatigue. Merci de regarder et de m'aider, j'en ai vraiment besoin! ++
|
|
vendredi 31 janvier 2003 à 13:21:27 |
Re : Ajout d'element dans une JList

JHelp
|
Esaaie plutôt : public class fenetre extends JFrame { Liste ma_liste = new Liste(); String str = new String("hello!"); public fenetre() { ma_liste.ajoute(str); } }
|
Ca marchera mieux. Un String est un Object, comme toute les classes en Java, donc si on peut mettre un Object, on peut tout mettre. Ensuite les varaibles et les constantes doivent ëtre connues de la classes et donc déclarées à l'intérieur de celle-ci et non à l'extérieur. JHelp
|
|
vendredi 31 janvier 2003 à 13:44:15 |
Re : Ajout d'element dans une JList

JHelp
|
Une petite erreur de ma part dans le code que je t'ai fournit., voici la méthode à corrigée : private void fire(ListDataEvent lde) { int nb=ecouteurs.size(); for(int i=0;i<nb;i++) fire((ListDataListener)ecouteurs.elementAt(i),lde); }
|
J'ai honte  A part celà, pour la taille, tu peux en effet choisir une taille préférée, mais la taille réelle, elle sera calculerau dernier moment. A moins que tu n'utilises la méthode pack(), pour donner une taille à la feêtre principale et pas un setSize, dans ce cas,il va essayer de donner leur taille préféré aux composants, en tout cas s'en approcher le plus possible, ceci dépandant bien entendu du Layout choisit et de l'emplacement des divers composants. Pour avoir une barre de défilement à ta Liste, quand celle ci est trop grande, met ta Liste dans un JScrollPane, en lui founissant se taille préférée à ta liste, le JScroolPane va s'adapter. N'oublies pas alors que c'est la méthode pack(), qu'il faut alors utiliser sur ta fenêtre principale. Par exemple : liste.setPreferredSize(new Dimension(largeur,hauteur)); conteneur.add(new JScrollPane(liste),contrainte);
|
JHelp
|
|
vendredi 31 janvier 2003 à 14:12:58 |
Re : Ajout d'element dans une JList

jonathan100
|
cf autre message: non MOI j'ai honte  , Mais c'est ce que j'avais fait. Code: public class fenetre extends JFrame { Liste ma_liste = new Liste(); String str = new String("hello!"); public fenetre() { ma_liste.ajoute(str); //ERREUR } } L'erreur se situe a ma_liste. La fonction ajoute demande un object. Or toi tu rentres str directement, c'est pour cela que je marque string_to_object, c'est la seule fonction que j'ai trouve qui fait apparemment ca. En mettant juste str, ca ne se compile meme pas et la fenetre n'apparait pas. En plus je travaille avec Bluej (www.bluej.org) et c'est une version beta alors... Je continue de voir. Merci beaucoup de ton aide 
|
|
vendredi 31 janvier 2003 à 14:15:32 |
Re : Ajout d'element dans une JList

jonathan100
|
cf autre message: non MOI j'ai honte  , Mais c'est ce que j'avais fait. Code: public class fenetre extends JFrame { Liste ma_liste = new Liste(); String str = new String("hello!"); public fenetre() { ma_liste.ajoute(str); //ERREUR } } L'erreur se situe a ma_liste. La fonction ajoute demande un object. Or toi tu rentres str directement, c'est pour cela que je marque string_to_object, c'est la seule fonction que j'ai trouve qui fait apparemment ca. En mettant juste str, ca ne se compile meme pas et la fenetre n'apparait pas. En plus je travaille avec Bluej (www.bluej.org) et c'est une version beta alors... Je continue de voir. Merci beaucoup de ton aide 
|
|
vendredi 31 janvier 2003 à 16:06:24 |
Re : Ajout d'element dans une JList

JHelp
|
Je ne comprends pas pourquoi ça ne compile pas avec simplement avec str. Chez moi ça marche trés bien et çà devrait marché partout, c'est les fondements même de Java. Fais une chose importante, tu peux dire que c'est du chipotage, mais parfois source d'erreur, commence toujours le nom d'une classe par une majuscule. Ta classe Fenetre est bien dans un fichier nomé Fenetre.java ? Peux-tu afficher l'erreur que te donne le compilateur ?
JHelp
|
|
Cette discussion est classée dans : liste, tableau, element, ajout, jlist
Répondre à ce message
Sujets en rapport avec ce message
style dans une JList [ par empiret ]
Bonjour, Comment peut-on mettre en gras par exemple, et si je generalise, mettre du style pour un seul element d'une JList, et non pas toute la liste
Ajout d'élément à une JList [ par atco ]
J'ai une application qui affiche dans une JListe des noms de personne. Je voudrais savoir quelle fonction permet d'ajouter un ou plusieurs noms de faç
Supprimer element d'un Jlist simplement.... GALERE [ par Syruis ]
Bonjour, je vais poser une question conne mais je vois pas comment supprimer un element d'une Jlist simplement.. Javadoc: http://java.sun.com/j2se/1.
comparaison [ par sheorogath ]
bjr a tous ,je voudrais comparer un element de type double a une serie de type double d'un tableau d'objet que g fait dans une classe jusque la pas tr
Struts element liste [ par anneaumonde ]
Bonjour, Je débute dans les développements des struts
Aidez Moi!!!! [ par Bencall ]
Bonjour, mon probleme concerne les scrollpane, j'ai trouvé plein de script a ce sujet, mais aucun ne s'adapte a mon projet. Le probleme est que mon la
Liste avec affichage de plusieurs lignes de texte par ligne [ par nounouX ]
Bonjour a tous, voila j'avais une question j'aimerai savoir comment faire pour avoir plusieur ligne sur la meme ligne d'une JListJe m'explique qaund o
Selectionner le dernier ajout dans une JList [ par freegreg ]
Salut, J'ai une JList sur laquelle j'applique un DefaultListModel pour pouvoir y ajouter des éléments. Ca marche, j'arrive a ajouter des éléments. Mon
ScrollBar dans une JList [ par JuS ]
Bonjour, Je cherche à faire une scrollbar verticale sur une JList mais j'en obtiens juste une horizontale !Voici mon code : JList liste; JScrollPane l
Ajout d'1 élément dans une Listbox VBscript [ par olympien13 ]
Bonjour à tous,Quelqu'un saurait-il me dire quelle syntaxe utiliser pour ajouter un élément dant une listbox en VBsrcipt.G créé une macro principale q
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|