CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Java] Une fois son code fini...

tbop2
tbop2
Niveau 10
27 juin 2012 à 14:41:02

En Java de memoire pour comparer deux strings on utilise string1.equals(string2). Ca resoudra tes problemes normalement. Sinon de memoire ca fait juste de la comparaison de reference donc ce n'est pas ce que tu veux.

PS : A chaque post tu devrais faire quelques screen de ton UI car c'est pas toujours evident de la decrire et donc pas toujours evident de comprendre les changements et ce qu'il se passe ent temps reel devant l'utilisateur.

Pseudo supprimé
Pseudo supprimé 27 juin 2012 à 14:42:34

https://image.noelshack.com/fichiers/2012/26/1340800848-Sanstitre.png

Regardez si vous voulez une image, j'ai rajouté une ligne montrant bien que la bonne réponse pour les questions à choix correspond bien avec la réponse du joueur !

Je n'y comprend vraiment rien ! :-(

Pseudo supprimé
Pseudo supprimé 27 juin 2012 à 14:43:52

tbop2 :d) Oui j'ai pensé à faire un screen mais j'ai posté après :o))

Pseudo supprimé
Pseudo supprimé 27 juin 2012 à 14:50:44

Oh génial tbop2, en effet ça marche !
Je connaissais pas cet exception avec les String, je pensais que le == suffisait, ça ne me mettait pas d'erreur en prime.
Haaaaaaaaa bon bah là je crois que je ne devrais plus trop avoir de problème, le programme va être fini dans la journée je pense :peur:

Pseudo supprimé
Pseudo supprimé 27 juin 2012 à 14:51:22

Oh génial tbop2, en effet ça marche !
Je connaissais pas cet exception avec les String, je pensais que le == suffisait, ça ne me mettait pas d'erreur en prime.
Haaaaaaaaa bon bah là je crois que je ne devrais plus trop avoir de problème, le programme va être fini dans la journée je pense :peur:

tbop2
tbop2
Niveau 10
27 juin 2012 à 15:31:24

Yay, verifie bien que tu as modifie ces comparaisons erronnees entre deux strings dans tout ton code par ailleurs.

Pseudo supprimé
Pseudo supprimé 27 juin 2012 à 15:47:25

Bon j'ai parlé un peu vite, il y a un truc que j'ai oublié de revoir, ce sont l'affichage des points, je pensais que ça se faisait automatiquement et s'actualisait pour chaque joueur dès qu'il avait un point en plus, mais apparemment non.
J'ai essayé mais tout ce que j'arrive à faire c'est de rajouter les infos du joueur et ses points en plus mais à la suite des infos déjà entrées au début :

https://image.noelshack.com/fichiers/2012/26/1340804522-Sanstitre.png

Je sais pas comment procéder, j'ai utilisé un add, peut-être que c'est ça qu'il faut modifier pour faire comprendre qu'il faut remplacer l'ancienne ligne par la nouvelle, mais j'ai pas trouvé d'info ( je suis tombé sur ça mais sans plus http://www.developpez.net/forums/d771195/java/general-java/apis/documents/pdf-remplacer-texte/ ).
Ou peut-être qu'il faut faire autrement ?

Bunyan
Bunyan
Niveau 17
27 juin 2012 à 15:50:13

En Java, tu as 2 grandes familles : les objets et les types primitifs.
Les types primitifs sont les types int, long, float, double ...
Les Objets, c'est le reste.
Grosso-modo : tout les types commençant par une majuscule SONT des Objets, tout les types commençant par des miniscules sont des types primitifs.

Pour tester l'égalité entre 2 types primitifs, on passe par "==", et celui-ci compare leur valeur respective, renvoyant true ou false, comme une égalité "normale".
Pour tester l'égalité entre 2 objets, on peut utiliser "==", mais ce test compare alors les places mémoires des deux objets.
Il faut plutôt utiliser la méthode equals, qui est hérité du type Object. Celle-ci permet de comparer les valeurs des objets. Entre 2 strings, c'est elle qu'il faut utiliser. Entre 2 Objets de ton crû comparable, il faudra la redéfinir, car elle ne compare pas grand chose à la base.

Note : il est conseillé de redéfinir aussi la méthode compareTo lorsque equals est redéfini.

Bunyan
Bunyan
Niveau 17
27 juin 2012 à 15:51:32

Pour ton souci de points, une fois les points changé, demande un "redessinement" du layout contenant les joueurs :)
(ou juste du JLabel correspond).

Pseudo supprimé
Pseudo supprimé 27 juin 2012 à 16:01:56

Bunyan :d) Le redessinement je l'ai mit pourtant :
playerBox.add(new JLabel (index.toString()));
playerBox.revalidate();

Mais comment faire comprendre que ça doit remplacer la bonne ligne et ne pas aller à la suite ?
Faut utiliser autre chose que le add à mon avis non ?

Et aussi je viens de voir dans mon image...quand la bonne réponse est A, le joueur a beau mettre A ça compte faux, bizarre le B, C et D passent :(

tbop2
tbop2
Niveau 10
27 juin 2012 à 16:02:56

J'ai personnellement pas tres bien compris ton probleme (et je t'assure que ton programme va avoir plein de bugs que tu n'as pas vu du aux petits problemes de GUI mal designee que j'ai pointes hier et qui t'eviteraient une grosse dose de problemes en aval). Ni compris le rapport avec le lien du forum qui parle de modifier un fichier PDF... ou est le rapport ? :)

Pseudo supprimé
Pseudo supprimé 27 juin 2012 à 16:06:31

Heu bonne question tbop2, je me suis gourré de lien :rire:
J'étais tombé sur un autre lien développez.net or c'était un article qui parlait d'affichage et comment afficher du texte.

Pseudo supprimé
Pseudo supprimé 27 juin 2012 à 16:12:49

Je vais réexpliquer si t'as pas comprit.
https://image.noelshack.com/fichiers/2012/26/1340804522-Sanstitre.png

En bas à droite il y a les joueurs qui apparaissent une fois l'inscription finie, au début ils ont 0 points, dès qu'ils marquent un point, j'aimerai que le 0 passe à 1 et etc...
Or là le soucis c'est que ça me rajoute la même ligne en dessous, là normalement je ne devrais avoir que deux lignes, une pour la joueur 1 et l'autre pour le joueur 2, pas 4 au total...

Or mon code rajoute à la suite à cause du "add" je suppose, je sais pas comment procéder pour faire comprendre qu'il doit remplacer la bonne ligne correspondant au bon joueur.

tbop2
tbop2
Niveau 10
27 juin 2012 à 16:26:44

Ok. Dans ce cas la c'est une fois de plus un probleme de GUI mal pensee avant tout.

Je ne connais plus par coeur les composants de Swing mais je suggererais que tu fasses une JTable de taille Nx2 avec N le nombre de joueurs et avec le formatage suivant:

Nom | Points
--------------
Bobby | 5
--------------
Marcel | 8
--------------
Dieu | 181

Bonne chance!

Pseudo supprimé
Pseudo supprimé 27 juin 2012 à 16:27:21

http://pastebin.com/JxWHezYp

Voici mon code si vous voulez voir de plus près.
Sinon faut peut-être ne pas mettre new aussi et indiquer qu'il faut juste changer nbpoints non ? Mais là non plus j'ai aucune idée vu que ça se trouve dans une ArrayList :(

Pseudo supprimé
Pseudo supprimé 27 juin 2012 à 16:30:44

tbop2 :d) Ouais, je vais voir si d'ici ce soir je trouve une solution à mon problème, sinon demain j'appliquerai ta solution, dommage que ça me fasse faire des changement dans ma GUI...

Je vais m'acheter le livre "Les GUI pour les nuls" pour mon prochain stage je crois :o))

tbop2
tbop2
Niveau 10
27 juin 2012 à 16:57:23

Oh sinon la solution est toute simple dans ton probleme, je te conseille juste de te renseigner sur ce qu'est une ArrayList vu qu'apparemment tu n'as pas trop compris l'utilite de cet objet :)

Une fois fait c'est du tout cuit :)

Pseudo supprimé
Pseudo supprimé 27 juin 2012 à 18:21:50

Une ArrayList est un tableau mais "amélioré" dans le sens où tu peux l'agrandir contrairement à un tableau classique qui une fois défini ne peut plus être modifié niveau taille.

Une ArrayList est extensible, c'est comme ça que je l'ai comprit.

Et dans mon programme, mon ArrayList contient les données de la class Joueurs.

Sinon j'ai cherché des pistes pour régler ce problème, est ce que ArrayList.remove(blabla) serait une solution ? J'ai essayé de l'appliquer mais je ne pense pas que ce soit adapté à mon problème. Mais peut-être est ce une bonne piste ?

tbop2
tbop2
Niveau 10
27 juin 2012 à 22:28:19

C'est étrange que tu ne comprennes pas ce que tu as fait alors. Tu as un ArrayList de JLabel pour afficher les scores de chaque joueur... Quand un joueur i gagne un point il suffit juste d'obtenir le i-ème élément de ton ArrayList puis de remplacer le text de JLabel par ce que tu veux.

Dans ton cas ça ressemblerait à un truc du style :
playerBox[i].setText("Joueur n°" + (i + 1) + ": " + index.getNom() + " " + index.getPoints() + " point(s)");

Tu peux même faire un joli if pour la bonne conjugaison.

... Si j'ai bien compris ton architecture sous-jacente bien sûr !

PS : Fais bien attention aux noms de variables encore une fois, remplacer "index" par "joueur" ça ne mange pas de pain et c'est juste 100 fois plus simple à lire et à comprendre :ok:

Pseudo supprimé
Pseudo supprimé 28 juin 2012 à 01:22:27

Hum ouais :(
Moi je me faisais chier à vouloir d'abord supprimer la ligne pour mettre la nouvelle à la place...
Je testerai mais en effet, récupérer le bon élément avec i qui indique le n° peut marcher, c'est fou que je n'y ai pas pensé parce que je l'ai déjà appliqué ce genre de procédé, mais en pascal :(

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment