|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Ajout d'element dans une JList [ Archives / Divers ] (jonathan100)
Informations & options pour cette discussion
|
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é 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
|
Téléchargements
Logiciels à télécharger sur le même thème :
|