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)

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


1 2

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


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,094 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.