IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaFX Discussion :

Rafraichissement d'une scene javafx


Sujet :

JavaFX

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 11
    Par défaut Rafraichissement d'une scene javafx
    Bonjour,
    Je vais essayer d'expliquer mon problème.
    (Pour ceux qui s'intéressent au pourquoi, j'essaie de programmer une sorte de Dice Hunter (application téléphone) en JavaFx)

    Maintenant passons à ce qui m'amène ici.
    Imaginez que Dice Hunter c'est un tableau en 3 lignes * 4 colonnes avec des cases (des ImageView chez moi mais très peu d'importance)
    Dans ces cases se trouvent des objets et des ennemis qu'il faut vaincre.
    Bon, maintenant, lorsque je démarre le jeu, j'ai tout d'abord un menu, une JOptionPane pour le pseudo, ok, et ensuite je dois pré-remplir ce tableau sur donc une autre scene, et je tire donc au sort son contenu et l'affiche dedans, en prévenant l'utilisateur des contenus avec des JOptionPane (pas très utile au début mais ensuite si..)

    Mais lorsque je le remplis, enfait ça le fait avec les messages et tout sans aucun problème, mais je n'ai aucun visuel sur ce qu'il se passe, je reçois une succession de message alors encore sur l'écran "menu", et ensuite il m'affiche tout d'un coup sur la prochaine scene

    Comment faire pour pouvoir suivre les affichages ?Pour "rafraichir" la scene sur laquelle on se trouve vraiment et entre chaque apparition ?

    Si ce n'est pas forcément utile pour le passage du menu au jeu, ça l'est pour comprendre ce qu'il se passe lors du jeu (car cela suit toujours le systeme d'apparition aleatoire en ligne du dessus, et ensuite de chute vers le bas)..

    Si ce n'est pas clair, j'attends vos questions, sinon, j'espère que vous pourrez m'aider, ce sera quand même un jeu bien plus marrant si on arrive à suivre ce qu'il se passe,

    En vous remerciant, Guillaume.

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Citation Envoyé par Vulci Voir le message
    Bon, maintenant, lorsque je démarre le jeu, j'ai tout d'abord un menu, une JOptionPane pour le pseudo, ok, et ensuite je dois pré-remplir ce tableau sur donc une autre scene, et je tire donc au sort son contenu et l'affiche dedans, en prévenant l'utilisateur des contenus avec des JOptionPane (pas très utile au début mais ensuite si..)
    Il y a une classe Dialog pour ca depuis quelques temps. Du coup tu as une application melangee Swing + JavaFX. A la base c'est quoi ? Une application JavaFX avec quelques element Swing ou une application Swing avec une scene JavaFX integree ?

    Comment faire pour pouvoir suivre les affichages ?Pour "rafraichir" la scene sur laquelle on se trouve vraiment et entre chaque apparition ?
    On a pas ton code on sait pas comment du fais et voir ma question précédente.

    Si ce n'est pas clair
    C'est pas clair. Du code, une trace, des images ou une vidéo aiderait plus facilement a comprendre ton problème.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 11
    Par défaut
    Merci bouye, je t'ai répondu en message privé avec mon programme car je vais peiner à expliquer le fond du problème ici.

    C'est une base en JavaFx

    Disons que pour raccourcir au maximum le problème j'essaie d'appliquer ça :
    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
     
                  if (nbTour == 0) {
    			for(Case c : list_case) {
    				Utilitaire.apparition(c);
    			}
    			Utilitaire.PriseObjets(shield, vie, labelor, labelshield, labelvie);
     
    			//L3C1.act = new Acteur("monstre", "chevalier");
    			//L3C1.imv.setImage(L3C1.act.img);
    			//Degats.Blessure(L3C1,L3C1.act.vie_act, L3C1.act.nom,L3C1.colonne, L3C1.ligne);
    			//Degats.Blessure(L3C1,L3C1.act.vie_act, L3C1.act.nom,L3C1.colonne, L3C1.ligne);
    			//Degats.Blessure(L3C1,L3C1.act.vie_act, L3C1.act.nom,L3C1.colonne, L3C1.ligne);
     
    			//Utilitaire.PriseObjets(shield, vie, labelor, labelshield, labelvie);
    		}
    Et dans Utilitaire.apparition, l'ImageView de la Case récupère l'image qui est associée à l'Acteur qui va être mis dedans (il est tiré au hasard)
    Et le programme attend de faire tous les Utilitaire.apparition(c) avant d'afficher les images, alors que j'aimerais qu'entre chacune d'entre elles, l'image de l'"Acteur" présent dans la case s'affiche. Comment faire pour "actualiser" l'ImageView ?

    PS : Voilà apparition si ça peut aider même si je ne pense pas que le problème vienne de là, il concerne plutôt l'ordre des tâches
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    	@SuppressWarnings("static-access")
    	public static void apparition(Case c) {
    		Random r = new Random();
    		int choixCase = r.nextInt(7);
    		switch (choixCase) {	
    		case 0: c.act = new Acteur("monstre", "chevalier");
    				c.imv.setImage(c.act.img);
    				break;
    		case 1: c.act = new Acteur("monstre", "voleur");
    				c.imv.setImage(c.act.img);
    				break;
    		case 2: c.act = new Acteur("monstre", "dragon");
    				c.imv.setImage(c.act.img);
    				break;
    		case 3: c.act = new Acteur("objet", "grossePotionVie");
    				c.imv.setImage(c.act.img);
    				break;	
    		case 4: c.act = new Acteur("objet", "bitcoin");
    				c.imv.setImage(c.act.img);
    				break;
    		case 5: Random r5 = new Random();
    				int choixBombe = r5.nextInt(2);
    				if (choixBombe == 0 ) {
    					c.act = new Acteur("destructible", "bombe2eclairs");
    					c.imv.setImage(c.act.img);
    					break;
    				}
    				else {
    					c.act = new Acteur("destructible", "bombe2etoiles");
    					c.imv.setImage(c.act.img);
    					break;
    				}
    		case 6: c.act = new Acteur("objet", "vide");
    				c.imv.setImage(c.act.img);
    				break;
    		}
    		JOptionPane jop = new JOptionPane();
    		jop.showMessageDialog(null, "Apparition d'un "+c.act.nom+" sur "+c.name,
    				"Apparition", JOptionPane.INFORMATION_MESSAGE);
    	}

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Juste pour info je rappelle que:
    1. Nous intervenons ici en tant que volontaire sur notre temps libre et donc que nous n'avons pas forcement le temps de jeter des coups d’œils approfondis sur des monceaux de code, encore plus s'ils nous sont envoyés en privés. Une publication en public sur le forum peut permettre a d'autres d'y jeter un regard plus approfondi.
    2. Mais cela est a tempérer par le fait que si vous publiez votre code source de votre projet hyper-super-secret alors d'autres peuvent se l'accaparer. De plus lors que vous bossez directement ou en tant que contractant pour une boite privée, une université, une administration ou encore l’armée, vous n’êtes probablement pas libre de pouvoir poster du code venant de votre projet.
    3. Une bonne approche consiste a isoler votre soucis dans des petits programmes de test qui sont aisément distribuables et qui permettent de reproduire le soucis. Cela a plusieurs avantages :
      • Vous ne bousillez pas ce qui fonctionne deja dans le code de votre gros projet en faisant des tests dessus.
      • Vous êtes libre de redistribuer ces tests car, détachés de tout contexte critique ou secret, ils ne dévoilent rien de votre projet.
      • Cela vous force structurer votre pensée et a réfléchir au problème avant même de venir poster ici sur le forum, ce qui vous permet parfois de trouver la solution par vous-même.
      • C'est un boost x 1000 pour nous pour arriver a comprendre votre soucis puisqu'on a pas a perdre 3 heures a coder un truc qui tente de reproduire votre problème... peut-être... c-a-d si votre explication a été suffisamment claire pour qu'on puise saisir ce que vous avez tenté de faire et ce qui vous bloque.



    Citation Envoyé par Vulci Voir le message
    Et le programme attend de faire tous les Utilitaire.apparition(c) avant d'afficher les images
    Comment ? Y-a-t'il une boucle et des appels bloquants ? Je rappelle que le couple Service/Task permet de lancer des taches en fond sans pour autant bloquer l'UI et que via la magie des propriétés une fois l'image récupérée et mise dans sa vue, la scène se rafraîchit automatiquement...
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 11
    Par défaut Merci !
    Bonjour,
    Oula je ne pense que si tu allais si mal le prendre que je t'envoie mon code.
    Ne t'en fais pas mon code n'a rien de précieux, et si tu veux le voler, pour le peu d'intérêt qu'il a, je n'y prête absolument aucune attention, mais ça m'apprendra à demander de l'aide ! Il n'y avait qu'à répondre "Je n'ai pas le temps désolé" et l'affaire aurait été bouclée !
    Je n'ai par ailleurs jamais dis non plus quelque chose en lien avec ton implication dans le forum ou le délai dé réponse ou que sais-je qui te force à rappeler que tu es volontaire, je le sais parfaitement et c'est pour ça que je commence chacun de mes messages en te remerciant !

    Néanmoins, ta dernière réponse m'a débloqué, et si c'est toi qui a écrit le documentaire ci (je me permets de dire ça même si j'en sais rien parce que le nom correspond) : https://fabrice-bouye.developpez.com...thread-javafx/
    Alors je te suis extrêmement reconnaissant de m'avoir orienté vers la bonne solution

    C'est tout à fait ce qu'il me fallait !
    Bonnes continuations à toi et merci pour ta solution !

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Citation Envoyé par Vulci Voir le message
    Oula je ne pense que si tu allais si mal le prendre que je t'envoie mon code.
    Meuh non c'est un rappel gentil à destination de tous ceux qui ont un soucis et viennent demander de l'aide
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Bogue avec un composant Swing dans une scene javaFX
    Par Stefounette dans le forum JavaFX
    Réponses: 0
    Dernier message: 06/05/2010, 15h38
  2. [FLASH 5]un bouton dans une image pour revenir sur une scene
    Par patato valdes dans le forum Flash
    Réponses: 7
    Dernier message: 28/04/2004, 20h21
  3. [MFC] probleme de rafraichissement d'une image
    Par Vestaproman dans le forum MFC
    Réponses: 6
    Dernier message: 09/01/2004, 23h59
  4. basculer d'une scene a l'autre
    Par singe dans le forum OpenGL
    Réponses: 4
    Dernier message: 10/12/2003, 18h00
  5. generer une image bitmap a partir d'une scene OGL
    Par FreshLog dans le forum OpenGL
    Réponses: 4
    Dernier message: 01/07/2003, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo