Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2163 connectés 

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  14  15  16  ..  24  25  26  27  28  29
Auteur Sujet :

[Java] Le topic-passage-obligé pour débutants !

n°1828181
masklinn
í dag viðrar vel til loftárása
Posté le 16-12-2008 à 19:23:09  profilanswer
 

Reprise du message précédent :

koskoz a écrit :

Donc ça je laisse :
Vector vlivre = new Vector();
 
Mais ça par exemple :
vlivre.addElement(new Livre(titre[i], reference[i]));
 
devient :
Vector<vlivre>.addElement(new Livre(titre[i], reference[i]));
 
:??:


C'est l'inverse. Comme indiqué dans la doc.

koskoz a écrit :

L'intérêt c'est de connaitre son type ou il y a plus que ça ?


Lis la doc, c'est marqué dedans [:petrus75]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
mood
Publicité
Posté le 16-12-2008 à 19:23:09  profilanswer
 

n°1828188
tomsoft
Posté le 16-12-2008 à 19:47:10  profilanswer
 

à propos des jeux et java,
 
en 2eme année d'info à l'iut, on a des projes de groupe à realiser,  
 
nous on fait un bomberman en 2d, typé MVC, avec IA et Reseau pour le multi, mais ca a tendance à vite ramer,
 
Java n'est pas forcement fait pour les jeux, mais quelles sont ses limites ?
 
j'envisage d'essayer ( et je dis bien essayer) pour mon plaisir de coder un jeu melange de worms et de UT, donc du temps reel pk pas en reseaux ou le but est d'exploser tout le monde.
 
utopie ou realisable en java ? sans que ca rame bien sur ;)

n°1828203
koskoz
They see me trollin they hatin
Posté le 16-12-2008 à 20:34:18  profilanswer
 

masklinn a écrit :


C'est l'inverse. Comme indiqué dans la doc.


 

masklinn a écrit :


Lis la doc, c'est marqué dedans [:petrus75]


 
Yep, j'avais pas encore lu la doc ;).


---------------
Twitter
n°1828209
souk
Tourist
Posté le 16-12-2008 à 20:43:43  profilanswer
 

tomsoft a écrit :

à propos des jeux et java,
 
en 2eme année d'info à l'iut, on a des projes de groupe à realiser,  
 
nous on fait un bomberman en 2d, typé MVC, avec IA et Reseau pour le multi, mais ca a tendance à vite ramer,


vous avez cherche a savoir ou ca ramait ? blamer java si rapidement c'est un peu facile. De mon experience, ca vient souvent d'une UI est codee avec les pieds ou tout est fait dans le thread swing, ou d'une couche reseau mal concue.  

n°1828216
tomsoft
Posté le 16-12-2008 à 21:08:12  profilanswer
 

non non je crache pas dessus hein, je me demande juste :jap:

n°1828221
souk
Tourist
Posté le 16-12-2008 à 21:17:44  profilanswer
 

je defends pas java non plus, c'est peut etre pas la meilleure techno pour des jeux 3D et companie, mais ce serait interessant  pour vous d'auditer un peu votre code pour voir ou ca rame exactement. De mon experience, les interfaces graphiques qui rament en java ont souvent un point commun: meconnaissance de swing et operations lourdes effectuees dans le thread swing. Genre si vous faites des operations reseaux ou IA dans ce thread, oui ca va ramouiller mechament :D  
tu peux fournir les sources ? eventuellement, ouvre un topic dedie a ton projet, ca peut etre interessant pour plein de monde.

n°1828226
tomsoft
Posté le 16-12-2008 à 21:34:17  profilanswer
 

j'en parlerais au groupe, on filera ptet les sources a la fin du projet, une fois que ce sera rendu ;)
 
on connait pas enormement swing, c'est vrai :/

n°1828233
Jubijub
Parce que je le VD bien
Posté le 16-12-2008 à 21:44:57  profilanswer
 

je plussois Souk : il faut comprendre qu'en Java, tout ce qui concerne Swing tourne dans un thread dedie. Donc si t'as des opérations longues a faire (IO disque, réseau, IA) faut impérativement les faire dans des thread séparés. Sinon ton UI va ramer parce que tu empeches swing de se rafraîchir. T'as des méthodes pour synchroniser ces threads entre eux (swingworker par ex)
 
De ce que j'ai vu de ton code t'as tendance a tout faire dans ton code swing :)


---------------
Jubi Photos : Flickr - 500px
n°1828291
koskoz
They see me trollin they hatin
Posté le 16-12-2008 à 23:56:41  profilanswer
 

Merci Masklin, j'ai corrigé mon warning grâce aux generics.
Par contre ça m'étonne qu'on ne l'ai pas encore vu en cours mais qu'on en ai besoin en TP [:mouais]


---------------
Twitter
n°1828295
the real m​oins moins
Posté le 17-12-2008 à 00:17:51  profilanswer
 

ben t'en as pas besoin, ça compile et ça marche très bien sans.
(au passage si qqun a une explication autre que "le prof est un manche" sur le coup du Vector, ça m'interesse, parce qu'ils font tous ça on dirait)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
mood
Publicité
Posté le 17-12-2008 à 00:17:51  profilanswer
 

n°1828307
masklinn
í dag viðrar vel til loftárása
Posté le 17-12-2008 à 00:45:33  profilanswer
 

the real moins moins a écrit :

ben t'en as pas besoin, ça compile et ça marche très bien sans.
(au passage si qqun a une explication autre que "le prof est un manche" sur le coup du Vector, ça m'interesse, parce qu'ils font tous ça on dirait)


TPs/leçons créées pour du java 1.0/1.1 et jamais vraiment révisées depuis, puisque pas spécialement d'intérêt pédagogique fondamental à le faire, c'est pas comme si les écoles enseignant java existaient pour apprendre aux gens à coder correctement.

Spoiler :

le prof est un manche [:spamafote]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1828309
koskoz
They see me trollin they hatin
Posté le 17-12-2008 à 00:56:13  profilanswer
 

the real moins moins a écrit :

ben t'en as pas besoin, ça compile et ça marche très bien sans.
(au passage si qqun a une explication autre que "le prof est un manche" sur le coup du Vector, ça m'interesse, parce qu'ils font tous ça on dirait)


 
Non, ça compilait avec un warning si je n'utilisais pas les generics.


---------------
Twitter
n°1828311
masklinn
í dag viðrar vel til loftárása
Posté le 17-12-2008 à 01:05:51  profilanswer
 

koskoz a écrit :


 
Non, ça compilait avec un warning si je n'utilisais pas les generics.


Donc ça compile et ça marche sans :o


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1828312
the real m​oins moins
Posté le 17-12-2008 à 01:26:39  profilanswer
 

masklinn a écrit :


TPs/leçons créées pour du java 1.0/1.1 et jamais vraiment révisées depuis, puisque pas spécialement d'intérêt pédagogique fondamental à le faire, c'est pas comme si les écoles enseignant java existaient pour apprendre aux gens à coder correctement.

Spoiler :

le prof est un manche [:spamafote]



tain mais meme moi ([:blessure]) j'ai jamais bossé avec 1.1 [:pingouino]
 
(merde, je viens de faire l'addition, je sais pas si je peux dire depuis combien de temps je fais du java [:pingouino])


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1834008
koskoz
They see me trollin they hatin
Posté le 05-01-2009 à 13:26:15  profilanswer
 

Salut tout le monde,
j'ai un problème pour trier des objets contenus dans un vecteur en fonction d'un int.
Le tri se fait bien, mais si par exemple au début j'ai 9 livres dans mon vecteur, à la fin j'aurai toujours 9 entrées dans mon vecteur, mais trois livres apparaissant plusieurs fois.
 

Code :
  1. // Tri par séléction ordinaire
  2.         Vector<Livre> vtmp = new Vector<Livre>();
  3.  
  4.         for (i=0;i<vlivre.size();i++)
  5.         {
  6.             int imin=i;
  7.             for (int j=i+1;j<vlivre.size();j++)
  8.             {
  9.                 if (vlivre.elementAt(imin).getReference()>vlivre.elementAt(j).getReference())
  10.                 {
  11.                     imin=j;
  12.                 }
  13.             }
  14.                 
  15.             vtmp.addElement(vlivre.elementAt(i));
  16.             vlivre.elementAt(i).setTitre(vlivre.elementAt(imin).getTitre());
  17.             vlivre.elementAt(i).setReference(vlivre.elementAt(imin).getReference());
  18.             vlivre.elementAt(imin).setTitre(vtmp.elementAt(vtmp.size()-1).getTitre());
  19.             vlivre.elementAt(imin).setReference(vtmp.elementAt(vtmp.size()-1).getReference());
  20.         }
  21.         
  22.         System.out.println("Réaffichage de l'ensemble trié selon la référence :" );
  23.         System.out.println(vlivre);


---------------
Twitter
n°1834047
masklinn
í dag viðrar vel til loftárása
Posté le 05-01-2009 à 14:12:01  profilanswer
 

koskoz a écrit :

Salut tout le monde,
j'ai un problème pour trier des objets contenus dans un vecteur en fonction d'un int.
Le tri se fait bien, mais si par exemple au début j'ai 9 livres dans mon vecteur, à la fin j'aurai toujours 9 entrées dans mon vecteur, mais trois livres apparaissant plusieurs fois.

 
Code :
  1. // Tri par séléction ordinaire
  2.         Vector<Livre> vtmp = new Vector<Livre>();
  3.  
  4.         for (i=0;i<vlivre.size();i++)
  5.         {
  6.             int imin=i;
  7.             for (int j=i+1;j<vlivre.size();j++)
  8.             {
  9.                 if (vlivre.elementAt(imin).getReference()>vlivre.elementAt(j).getReference())
  10.                 {
  11.                     imin=j;
  12.                 }
  13.             }
  14.                 
  15.             vtmp.addElement(vlivre.elementAt(i));
  16.             vlivre.elementAt(i).setTitre(vlivre.elementAt(imin).getTitre());
  17.             vlivre.elementAt(i).setReference(vlivre.elementAt(imin).getReference());
  18.             vlivre.elementAt(imin).setTitre(vtmp.elementAt(vtmp.size()-1).getTitre());
  19.             vlivre.elementAt(imin).setReference(vtmp.elementAt(vtmp.size()-1).getReference());
  20.         }
  21.         
  22.         System.out.println("Réaffichage de l'ensemble trié selon la référence :" );
  23.         System.out.println(vlivre);



[:totoz]

 

On peut savoir pourquoi tu utilises des vectors (sans passer par les méthodes rétrofittées de Collection en plus), et surtout pourquoi tu réimplémentes un tri alors que c'est inclus dans la lib [:pingouino dei]

 

edit: et accessoirement,

Code :
  1. vlivre.elementAt(i).setTitre(vlivre.elementAt(imin).getTitre());
  2.             vlivre.elementAt(i).setReference(vlivre.elementAt(imin).getReference());
  3.             vlivre.elementAt(imin).setTitre(vtmp.elementAt(vtmp.size()-1).getTitre());
  4.             vlivre.elementAt(imin).setReference(vtmp.elementAt(vtmp.size()-1).getReference());


c'est un peu gerbant [:pingouino]


Message édité par masklinn le 05-01-2009 à 14:14:22

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1834133
koskoz
They see me trollin they hatin
Posté le 05-01-2009 à 16:10:48  profilanswer
 

J'implémente les vecteurs parce que c'est ce qui m'est demandé de faire et ce que j'ai vu en cours [:spamafote]


---------------
Twitter
n°1834151
masklinn
í dag viðrar vel til loftárása
Posté le 05-01-2009 à 16:47:33  profilanswer
 

koskoz a écrit :

J'implémente les vecteurs parce que c'est ce qui m'est demandé de faire et ce que j'ai vu en cours [:spamafote]


Mais c'est complètement con [:sisicaivrai]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1834163
koskoz
They see me trollin they hatin
Posté le 05-01-2009 à 17:03:46  profilanswer
 

Bon, j'ai essayé de faire ça, mais sa me pète deux warnings ("unchecked call to compare" entre autre) et j'ai un NullPointerException lors de l'exécution.
 
J'ai essayé de faire ça, mais j'avoue que je m'embrouille pas mal :
 

Code :
  1. Comparator c=null;
  2.         c.compare(vlivre.elementAt(0).getReference(), vlivre.elementAt(1).getReference());
  3.         TreeSet<Livre> t = new TreeSet<Livre>(c);


---------------
Twitter
n°1834171
koskoz
They see me trollin they hatin
Posté le 05-01-2009 à 17:26:17  profilanswer
 

Pour comparer selon la référence, c'est bon, j'ai réussi en redéfinissant compareTo dans ma classe Livre, puis en faisant simplement :
 
Collections.sort(vlivre);
 
Par contre, je dois faire de même avec des strings maintenant, je dois une fois de plus redéfinir compareTo ?


---------------
Twitter
n°1834172
masklinn
í dag viðrar vel til loftárása
Posté le 05-01-2009 à 17:31:56  profilanswer
 

koskoz a écrit :

Par contre, je dois faire de même avec des strings maintenant, je dois une fois de plus redéfinir compareTo ?


Si tu dois trier ta collection de plusieurs manières différentes, tu devrais plutôt implémenter une série de Comparator et utiliser Collections#sort(List<T>, Comparator<T> )

 

Si tu dois juste comparer des strings entre eux, c'est built-in


Message édité par masklinn le 05-01-2009 à 17:33:02

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1834181
koskoz
They see me trollin they hatin
Posté le 05-01-2009 à 17:50:18  profilanswer
 

Et quand tu dis implémenter une série de comparateur, c'est par exemple définir deux méthodes dans ma classe livre :
 
compareString(Livre livre)
compareRef(Livre livre)
 
:??:
 
Et ensuite par rapport aux collections je l'utilise comment ?


---------------
Twitter
n°1834185
masklinn
í dag viðrar vel til loftárása
Posté le 05-01-2009 à 17:52:50  profilanswer
 

koskoz a écrit :

Et quand tu dis implémenter une série de comparateur, c'est par exemple définir deux méthodes dans ma classe livre :

 

compareString(Livre livre)
compareRef(Livre livre)


Non, c'est créer des classes implémentant java.util.Comparator, et je t'ai donné la méthode à utiliser quand tu as ton comparator.

Message cité 1 fois
Message édité par masklinn le 05-01-2009 à 17:53:13

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1834254
koskoz
They see me trollin they hatin
Posté le 05-01-2009 à 20:37:45  profilanswer
 

masklinn a écrit :


Non, c'est créer des classes implémentant java.util.Comparator, et je t'ai donné la méthode à utiliser quand tu as ton comparator.


 
Ok, merci :)


---------------
Twitter
n°1834266
koskoz
They see me trollin they hatin
Posté le 05-01-2009 à 21:19:02  profilanswer
 

Bon, jvais paraître con, mais vu que se ne sera pas la première fois, je me lance.
 
J'ai ça :  
 

Code :
  1. class Comparateur implements Comparator {
  2.     
  3.     public int compareString(T o1, T o2) {
  4.         return compare((String)o1, (String)o2);
  5.     }
  6.     
  7.     public int compareRef(T o1, T o2) {
  8.         return compare((Integer)o1, (Integer)o2);
  9.     }
  10. }


 
Mais il aime pas du tout.
Ce que je ne comprend pas c'est qu'il ne veut pas implémenter la classe Comparator :/


---------------
Twitter
n°1834278
tomsoft
Posté le 05-01-2009 à 21:59:20  profilanswer
 

Comparator doit etre une interface, ya des methodes definies à surcharger

n°1834284
the real m​oins moins
Posté le 05-01-2009 à 22:22:47  profilanswer
 

ha ouais qd meme. en meme temps le message d'erreur dit clairement ce qui va pas hein.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1834291
koskoz
They see me trollin they hatin
Posté le 05-01-2009 à 22:35:34  profilanswer
 

J'avais trouvé l'exemple sur internet [:spamafote]


---------------
Twitter
n°1834309
masklinn
í dag viðrar vel til loftárása
Posté le 05-01-2009 à 23:10:52  profilanswer
 

koskoz a écrit :

Bon, jvais paraître con, mais vu que se ne sera pas la première fois, je me lance.
 
J'ai ça :  
 

Code :
  1. class Comparateur implements Comparator {
  2.     
  3.     public int compareString(T o1, T o2) {
  4.         return compare((String)o1, (String)o2);
  5.     }
  6.     
  7.     public int compareRef(T o1, T o2) {
  8.         return compare((Integer)o1, (Integer)o2);
  9.     }
  10. }


 
Mais il aime pas du tout.
Ce que je ne comprend pas c'est qu'il ne veut pas implémenter la classe Comparator :/


 [:k-nar]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1834683
Jubijub
Parce que je le VD bien
Posté le 06-01-2009 à 18:46:54  profilanswer
 

koskoz a écrit :

Bon, jvais paraître con, mais vu que se ne sera pas la première fois, je me lance.
 
J'ai ça :  
 

Code :
  1. class Comparateur implements Comparator {
  2.     
  3.     public int compareString(T o1, T o2) {
  4.         return compare((String)o1, (String)o2);
  5.     }
  6.     
  7.     public int compareRef(T o1, T o2) {
  8.         return compare((Integer)o1, (Integer)o2);
  9.     }
  10. }


 
Mais il aime pas du tout.
Ce que je ne comprend pas c'est qu'il ne veut pas implémenter la classe Comparator :/


 
hum...
relis ton cours sur les interfaces : si tu implémentes une interface, tu dois au minimum implémenter tout ce qui est défini dans l'interface de l'Interface que tu implémentes, ici Comparator.
Un coup d'oeil sur la doc de Comparator montre qu'il y a 2 méthodes :  

Code :
  1. int compare(T o1, T o2)
  2. boolean equals(Object obj)


 
et c'est logique : un comparateur ça permet de trier des objets...pour trier des objets faut que tu puisses avoir une relation d'ordre (bidule est plus grand ou plus petit que truc, voire égal)
 
un Comparator ça marche comme ça : t'as des collections et méthodes de collections qui sont prévues pour les utiliser. Comme ils savent pas comment tu vas implémenter ton comparateur, ils parlent à "l'interface" Comparator ,donc la seule méthode appelée sera forcément int compare(T o1, T o2).
Si tu veux avoir des Comparateurs différents (tri sur int, etc...) il te faut implémenter autant de comparateur que tu as d'ordres différents, et passer le bon pour obtenir le tri désiré.
 
Dans ton cas, il te faut faire 2 Comparator : un StringComparator (inutile car par défaut les collections savent trier des String) et un IntComparator
 
après, selon ce que tu veux trier, tu appelles la méthode sorte et tu passes une instance du Comparator qui t'intéresse
 


---------------
Jubi Photos : Flickr - 500px
n°1834687
masklinn
í dag viðrar vel til loftárása
Posté le 06-01-2009 à 18:50:28  profilanswer
 

Jubijub a écrit :

Dans ton cas, il te faut faire 2 Comparator : un StringComparator (inutile car par défaut les collections savent trier des String) et un IntComparator


Sauf qu'en fait il s'est mal exprimé, ce qu'il veut c'est trier sa collection de livres, une fois sur une propriété qui retourne un int (reference) et une fois sur une propriété qui retourne un string (title) :D


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1834699
Jubijub
Parce que je le VD bien
Posté le 06-01-2009 à 19:10:44  profilanswer
 

donc il lui faut 2 Comparator...
 
un qui compare sur le getTitle (celui là est facile, il suffit de retourner le résultat de la méthode compareTo de String, qui est déjà implémentée), et un qui compare sur le getReference (là encore, Integer implémente comparable, donc il suffit de retourner le résultat de la méthode compareTo)


---------------
Jubi Photos : Flickr - 500px
n°1834765
masklinn
í dag viðrar vel til loftárása
Posté le 06-01-2009 à 20:38:44  profilanswer
 

Jubijub a écrit :

donc il lui faut 2 Comparator...
 
un qui compare sur le getTitle (celui là est facile, il suffit de retourner le résultat de la méthode compareTo de String, qui est déjà implémentée), et un qui compare sur le getReference (là encore, Integer implémente comparable, donc il suffit de retourner le résultat de la méthode compareTo)


 [:obvious]

Message cité 1 fois
Message édité par masklinn le 06-01-2009 à 20:38:57

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1834962
koskoz
They see me trollin they hatin
Posté le 07-01-2009 à 11:47:27  profilanswer
 

Jubijub a écrit :


 
hum...
relis ton cours sur les interfaces : si tu implémentes une interface, tu dois au minimum implémenter tout ce qui est défini dans l'interface de l'Interface que tu implémentes, ici Comparator.
Un coup d'oeil sur la doc de Comparator montre qu'il y a 2 méthodes :  

Code :
  1. int compare(T o1, T o2)
  2. boolean equals(Object obj)


 
et c'est logique : un comparateur ça permet de trier des objets...pour trier des objets faut que tu puisses avoir une relation d'ordre (bidule est plus grand ou plus petit que truc, voire égal)
 
un Comparator ça marche comme ça : t'as des collections et méthodes de collections qui sont prévues pour les utiliser. Comme ils savent pas comment tu vas implémenter ton comparateur, ils parlent à "l'interface" Comparator ,donc la seule méthode appelée sera forcément int compare(T o1, T o2).
Si tu veux avoir des Comparateurs différents (tri sur int, etc...) il te faut implémenter autant de comparateur que tu as d'ordres différents, et passer le bon pour obtenir le tri désiré.
 
Dans ton cas, il te faut faire 2 Comparator : un StringComparator (inutile car par défaut les collections savent trier des String) et un IntComparator
 
après, selon ce que tu veux trier, tu appelles la méthode sorte et tu passes une instance du Comparator qui t'intéresse
 


 
Merci pour l'explication.
 

masklinn a écrit :


Sauf qu'en fait il s'est mal exprimé, ce qu'il veut c'est trier sa collection de livres, une fois sur une propriété qui retourne un int (reference) et une fois sur une propriété qui retourne un string (title) :D


 
Oui, c'est ça.
 
J'ai finalement réussi hier, je n'avais pas saisi le principe qu'il me fallait deux classes différentes pour faire ce que j'avais à faire.
 

Code :
  1. class ComparateurTitre implements Comparator {
  2.     
  3.     public int compare(Object o1, Object o2) {
  4.         String titre1 = ((Livre) o1).getTitre();
  5.         String titre2 = ((Livre) o2).getTitre();
  6.         
  7.         return titre1.compareTo(titre2);
  8.     }
  9.     
  10.     public boolean equals(Object obj) {
  11.         if (obj == null || (this.getClass() != obj.getClass()))
  12.             return false;
  13.         else
  14.             return true;
  15.     }
  16. }


 
J'ai juste deux warnings (unchecked conversion), que mon prof ne sait pas résoudre, donc j'en appelle à vous :o
 
TreeSet<Livre> t = new TreeSet<Livre>(comp);
TreeSet<Livre> u = new TreeSet<Livre>(compref);
 


---------------
Twitter
n°1834968
masklinn
í dag viðrar vel til loftárása
Posté le 07-01-2009 à 12:13:35  profilanswer
 

Tu utilise des collections génériques, il te faut donc un comparateur générique au lieu d'un comparateur 1.4:

Code :
  1. class TitleComparator implements Comparator<Livre> {
  2.    public int compare(Livre l1, Livre l2) {
  3.        // Gérer le cas où l1.getTitre() est nul, si la chose est possible
  4.        return l1.getTitre().compareTo(l2.getTitre());
  5.    }
  6.        
  7.    public boolean equals(Object obj) {
  8.        return this == obj;
  9.    }
  10. }

Message cité 1 fois
Message édité par masklinn le 07-01-2009 à 12:13:53

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1834975
koskoz
They see me trollin they hatin
Posté le 07-01-2009 à 12:19:01  profilanswer
 

masklinn a écrit :

Tu utilise des collections génériques, il te faut donc un comparateur générique au lieu d'un comparateur 1.4:

Code :
  1. class TitleComparator implements Comparator<Livre> {
  2.    public int compare(Livre l1, Livre l2) {
  3.        // Gérer le cas où l1.getTitre() est nul, si la chose est possible
  4.        return l1.getTitre().compareTo(l2.getTitre());
  5.    }
  6.        
  7.    public boolean equals(Object obj) {
  8.        return this == obj;
  9.    }
  10. }



 
Ah oui, et donc le fait de lui préciser qu'on ne prendra que des livres m'évite de devoir caster tous mes objets pour les passer en livre ensuite.
Pas mal :jap:


---------------
Twitter
n°1836046
koskoz
They see me trollin they hatin
Posté le 09-01-2009 à 16:01:31  profilanswer
 

Petit question,
on est en train de développer un éditeur de partitions musicales en Java avec Swing.
 
Pour l'instant, on a utilisé netbeans pour créer la/les fenêtres sans devoir toucher au code.
Mais on sait très bien qu'à un moment ou à un autre on devra mettre les mains dans le cambuit.
Vaut-il mieux qu'on ré écrive tout à la main, from scratch ou alors on continu avec netbeans ?


---------------
Twitter
n°1836052
tomsoft
Posté le 09-01-2009 à 16:08:00  profilanswer
 

si c'est pour apprendre, re-ecris tout  
 
efin c'est ce que je ferais

n°1836224
Jubijub
Parce que je le VD bien
Posté le 09-01-2009 à 22:03:34  profilanswer
 

le pb de swing c'est le positionnement....pour obtenir ce que tu veux, va falloir mettre les mains dans un gestionnaire de Layout...Et GridBagLayout, ça irite un poil au début...
 
le code de netbeans est pas trop dégueu, je serais vous j'y toucherais pas trop...au pire renommez via les tableaux de propriétés les variables pour éviter des label1, label2, etc...
 
après pour manipuler, tu fais des getters//setters sur les modèles des composants swing, et tu updates en jouant sur le SwingWorker et autres (pas trop mal expliqué ici : http://gfx.developpez.com/tutoriel [...] threading/ )


---------------
Jubi Photos : Flickr - 500px
n°1836225
Jubijub
Parce que je le VD bien
Posté le 09-01-2009 à 22:04:09  profilanswer
 


 
pour toi c'est évident, pour lui ça l'était pas, CQFD


---------------
Jubi Photos : Flickr - 500px
n°1836227
Jubijub
Parce que je le VD bien
Posté le 09-01-2009 à 22:13:33  profilanswer
 

koskoz a écrit :


Code :
  1. public boolean equals(Object obj) {
  2.         if (obj == null || (this.getClass() != obj.getClass()))
  3.             return false;
  4.         else
  5.             return true;
  6.     }


 


 
un truc tout con : c très moche et lourd comme écriture le return false else return true.
 
fais ça directement :  
 

Code :
  1. public boolean equals(Object obj) {
  2.         return  ! (obj == null || (this.getClass() != obj.getClass()));
  3.     }


 
ensuite tu peux pas vraiment dire que 2 objets sont égaux si ils ont la meme classe...tu peux appeler hashcode() par ex, ou vérifier ce qui au sens de ton objet veut dire l'égalité (par ex la méthode equals de String considère 2 String égales si elles contiennent exactement les meme caractères)
 


---------------
Jubi Photos : Flickr - 500px
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  14  15  16  ..  24  25  26  27  28  29

Aller à :
Ajouter une réponse
 

Sujets relatifs
[Java] Outil de gestion de "composants"; GraphEdit "like"[Java/xml] Caractères à la con ds un .xml généré en dom
Cryptage md5 & javaGénération d'images en Java (server side)
[Java] [Resolu] Erreur ODBC État de curseur non valide[JAVA] caractères accentué différents selon OS
[JAVA] Pb affichage caractèrecréer un répertoire en java
copier-coller en javapassage de c++ a php
Plus de sujets relatifs à : [Java] Le topic-passage-obligé pour débutants !


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)