[Java] une JList à la place d'une JComboBox
Résolu/Fermé
moussecp
Messages postés
58
Date d'inscription
lundi 30 juillet 2007
Statut
Membre
Dernière intervention
10 mai 2012
-
Modifié par moussecp le 7/08/2011 à 21:27
moussecp Messages postés 58 Date d'inscription lundi 30 juillet 2007 Statut Membre Dernière intervention 10 mai 2012 - 9 août 2011 à 17:35
moussecp Messages postés 58 Date d'inscription lundi 30 juillet 2007 Statut Membre Dernière intervention 10 mai 2012 - 9 août 2011 à 17:35
A voir également:
- [Java] une JList à la place d'une JComboBox
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Placer des points sur une carte - Guide
- Waptrick java voiture - Télécharger - Jeux vidéo
2 réponses
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
Modifié par KX le 7/08/2011 à 22:39
Modifié par KX le 7/08/2011 à 22:39
J'avoue que je me perds un peu dans ton code :(
En particulier pourquoi tu as besoin de créer autant de classes, tu n'as pas à en recréer une à chaque fois que tu veux un comportement particulier !
Lorsque tu fais ta classe NetList, tu utilises un String[595] et cela pose un certain nombre de bugs vu que cela rempli tout de cases vides !
Je te conseille d'utiliser des List<String> comme ceci :
Remarque : cette classe est un exemple parfait de ce que j'expliquais tout à l'heure, elle ne sert à rien ! Ses objets n'en sont pas vraiment, elle se comporte comme n'importe quelle méthode statique, alors autant la remplacer par ceci :
Tu gagnerais en productivité (et en esthétique) si tu utilisais des éditeurs comme NetBeans pour créer ton application graphique plutôt que de tout taper à la main...
La confiance n'exclut pas le contrôle
En particulier pourquoi tu as besoin de créer autant de classes, tu n'as pas à en recréer une à chaque fois que tu veux un comportement particulier !
Lorsque tu fais ta classe NetList, tu utilises un String[595] et cela pose un certain nombre de bugs vu que cela rempli tout de cases vides !
Je te conseille d'utiliser des List<String> comme ceci :
import java.util.LinkedList; import java.util.Scanner; public class NetList extends LinkedList<String> { private static final long serialVersionUID = 1L; public NetList() { try { Scanner sc = new Scanner(new File("NetCodeList.txt")); while (sc.hasNextLine()) add(sc.nextLine()); sc.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } } public String[] getList() { return toArray(new String[size()]); } }
Remarque : cette classe est un exemple parfait de ce que j'expliquais tout à l'heure, elle ne sert à rien ! Ses objets n'en sont pas vraiment, elle se comporte comme n'importe quelle méthode statique, alors autant la remplacer par ceci :
private static File ressource = new File("D:\\NetCodeList.txt") private static String[] NetList() { LinkedList<String> liste = new LinkedList<String>(); try { Scanner sc = new Scanner(ressource); while (sc.hasNextLine()) liste.add(sc.nextLine()); sc.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } return liste.toArray(new String[liste.size()]); }
Tu gagnerais en productivité (et en esthétique) si tu utilisais des éditeurs comme NetBeans pour créer ton application graphique plutôt que de tout taper à la main...
La confiance n'exclut pas le contrôle
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
7 août 2011 à 21:11
7 août 2011 à 21:11
D'où vient ta classe MultipleSelectionFrame ? Elle n'est pas standard et il y en a beaucoup de versions différentes sur internet. Celles que j'ai trouvé n'ont pas les méthodes getInputList, getCopiedList et getCopyButton dont tu te sers...
Il serait sûrement mieux de toujours utiliser des méthodes standards plutôt que de prendre un bout de code par ci, par là...
Il serait sûrement mieux de toujours utiliser des méthodes standards plutôt que de prendre un bout de code par ci, par là...
moussecp
Messages postés
58
Date d'inscription
lundi 30 juillet 2007
Statut
Membre
Dernière intervention
10 mai 2012
7 août 2011 à 21:13
7 août 2011 à 21:13
c'est moi qui l'ai crée. Je l'ai ajouté dans mon premier message. Elle n'a rien de très compliqué. :)
moussecp
Messages postés
58
Date d'inscription
lundi 30 juillet 2007
Statut
Membre
Dernière intervention
10 mai 2012
7 août 2011 à 21:17
7 août 2011 à 21:17
En fait je me suis grandement inspiré d'un livre de Java et j'ai trouvé que la structure qui me convenait le mieux parmi celles proposées était la GridBagFrame.
Indépendamment de ça, ils expliquent comment utiliser un JFrame d'où leur classe "MultipleSelectionFrame".
Je me suis contenté d'implémenter les deux ensemble. Mais si tu penses que je ferais mieux d'utiliser des fonctions existantes, je suis toute ouïe. :)
Indépendamment de ça, ils expliquent comment utiliser un JFrame d'où leur classe "MultipleSelectionFrame".
Je me suis contenté d'implémenter les deux ensemble. Mais si tu penses que je ferais mieux d'utiliser des fonctions existantes, je suis toute ouïe. :)
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
7 août 2011 à 21:21
7 août 2011 à 21:21
J'avais du commencer à travailler avec le code avant que tu ne le modifies c'est pour ça que je n'ai pas vu la classe MultipleSelectionFrame, cependant il me manque encore la classe NetList pour pouvoir tester...
moussecp
Messages postés
58
Date d'inscription
lundi 30 juillet 2007
Statut
Membre
Dernière intervention
10 mai 2012
7 août 2011 à 21:22
7 août 2011 à 21:22
ok je rajoute. 2 secondes.
et encore merci.
et encore merci.
7 août 2011 à 22:48
Pour ce qui est de la liste en effet là il manque des éléments. C'est juste que je n'ai pas recopié les 595 lignes du fichier mais seulement les 20-30 premières.
Enfin pour ce qui est du nombre de classes, disons que je n'ai pas une grande expérience de l'orienté objet et la personne pour qui je fais le code (je suis en stage dans une entreprise) m'a conseillé de plutôt faire trop de classes que pas assez.
Quoi qu'il en soit, un grand merci d'avoir passé du temps sur mon problème. J'essaierais une autre approche via NetBeans, comme tu proposes, demain. :)
7 août 2011 à 23:00
Pour les listes, il vaut mieux utiliser mon code quand même, car si tu as 595 éléments aujourd'hui tu en auras peut-être 596 demain, et ton code va planter car ton tableau ne sera pas assez grand !
NetBeans est un IDE comme Eclipse, mais il propose en plus de créer des "Java Desktop Application", il te suffit de faire glisser les composants pour les mettre où tu veux.
Bon, en pratique c'est pas forcément aussi simple que ça et il y a pas mal de choses que tu devras faire tout seul quand même mais pour l'aspect graphique, c'est bien plus rapide (surtout si tu ne connais pas bien swing... comme moi ^^)
9 août 2011 à 17:35