Une question que je me pose : Il n'existe pas de methodes toutes faites pour trier par ordre alphabetique le contenu d'une JList ?
J'ai vu des exemples mais ou il faut tout implementer soit meme ....
Une question que je me pose : Il n'existe pas de methodes toutes faites pour trier par ordre alphabetique le contenu d'une JList ?
J'ai vu des exemples mais ou il faut tout implementer soit meme ....
Salut,
Il faut passer par le modèle de données. Quel modèle utilises-tu ?
a++
heuu .... celui avec un rectangle blanc et un surlignage bleu ?Quel modèle utilises-tu ?
non blague a part allez y molo, je suis pas sous java depuis longtemps
J'ai du mal avec les termes specifiques :p
Je sais mes 10ans de delphi donne l'impression de m'y connaitre mais c'est que theorique
Quand on connait pas trop en Java, mais qu'on en a entendu parler, et qu'on a déjà un background, le mieux c'est le Java Tutorial.
Les tutoriaux developez.com sont bien aussi, bien sûr, mais le java tutorial me parait bien plus complet et bien mieux organisé.
Sur les listes : How to Use Lists. (mais rien sur le classement par ordre alphabétique).
Pour le classement lui même, il faudra probablement, comme le dis adiGuba, que tu travailles à partir du modèle, et ce sera plus facile de t'expliquer une fois que tu auras lu le lien indiqué plus haut.
Ton modèle sera possiblement construit sur une ArrayList, que tu pourras classer en faisant simplement java.util.Arrays.sort(...). Et pour les choses plus élaborées, tout est expliqué, dans le Java Tutorial bien sûr, à Comparing Strings.
Le ListModel est la classe qui contient les données et qui les fournit à la JList (qui se contente de gérer l'affichage).
Ainsi si tu veux modifier les données il faut passer par un ListModel...
Je suppose que tu dois utiliser la JList avec son constructeur prenant un Vector ou un tableau. Le problème est que le ListModel alors utilisé n'est pas très pratique (on ne peux pas vraiment le manipuler comme on veut).
Donc le mieux serait d'utiliser ton propre ListModel. Le plus simple serait d'hériter de AbstractListModel qui gère déjà les mécanismes d'évènement (il suffit juste d'appeler les méthode fireXXX() lorsque on modifie les données).
Exemple basique :
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 public class ArrayListModel extends AbstractListModel { private List data = new ArrayList(); public Object getElementAt(int index) { return this.data.get(index); } public int getSize() { return this.data.size(); } public void add(Object element) { // On ajoute un élément à la liste : this.data.add(element); // On envoi un évenement pour signaler l'ajout : fireIntervalAdded(this, this.getSize(), this.getSize()); } public void sort() { // On trie les données : Collections.sort(this.data); // On envoi un évenement pour signaler que les données ont changées : fireContentsChanged(this, 0, this.getSize()); } }
Ensuite il suffit d'appeler la méthode sort() sur le modèle pour trier le contenu (il faut que les objets de la liste soit comparable - voir la doc de Collections.sort()).
Bien sûr on peut étendre cette classe afin d'y ajouter tout ce qui est nécessaire
a++
Effectivemetn c'est mon cas : 10 ans de prog Delphi dont plus de 4 annees professionnelles. Java c'est par curiosité et anticipation sur l'avenir.Quand on connait pas trop en Java, mais qu'on en a entendu parler, et qu'on a déjà un background, le mieux c'est le Java Tutorial.
Donc tout ce qui est conception, je maitrise pas mal. LEs techniques de codages aussi, tant qu'elles sont proches de celles utilisés par delphi.
Ce qui me manque surtout c'est la semantique, et m'approprier "l'esprit" java qui est un peu differents sur certains points de Delphi dont l partir "procedural" nous permet certaines choses.
J'irais jetter un coup d'oeil a ce tuto ...
Ok.Pour le classement lui même, il faudra probablement, comme le dis adiGuba, que tu travailles à partir du modèle, et ce sera plus facile de t'expliquer une fois que tu auras lu le lien indiqué plus haut.
C'est pas la premiere fois qu'on me parle de modele. Je commence a comprendre un peu ce terme specifique a Java, du moins en autodicdate, je ne l'ai jamais utilisé sous Delphi. Une fois le rapprochement fait avec Delphi plus de soucis
Pas tout a fait mais c'est proche de cela.Je suppose que tu dois utiliser la JList avec son constructeur prenant un Vector ou un tableau. Le problème est que le ListModel alors utilisé n'est pas très pratique (on ne peux pas vraiment le manipuler comme on veut).
C'est un JDialog, qui dans son constructeur declare et initialise un JList.
Les donnees sont contenue dans une de mes classes personnelle derivant de Object, avec un tableau d'elements et toutes les methodes Add, loadFromFile, get ... qui vont bien.
Cette "liste" est transmise a ma frame dialog qui sur un "show" va afficher dans le JList son contenu.
On n'est pas vraiement dans le cas d'un "model" qui met a jour une "vue" lorsque il est manipulé de l'exterieur.
Cette liste est une liste qui est chargé au depart de l'applciation et dont on se sert du contenu pour differentes operation sans modification. Sauf dans le cadre de la modification ou creation de la liste, par mon JDialog. Modifier ou creer une liste reviens a sauvegarder la liste modifiee/cree et la charger.
Donc en fait si j'ai bien compris c'est pas vraiement le JListe qui pose probleme, mais plutot la conception de ma classe "List" qui ne deriverais pas de la bonne classe ....
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager