MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Un petit projet dans le but de maîtriser la bête… java?

    Planifier Épinglé Verrouillé Déplacé Le salon informatique
    software
    16 Messages 5 Publieurs 655 Vues 1 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • RedRelayR Hors-ligne
      RedRelay Moddeurs confirmés
      dernière édition par

      Les Frames utilisent TOUTES un BorderLayout par défaut.
      Les JPanels sont en revanche initialisé en FlowLayout. Donc oui en effet, tu dois garder ton setLayout ^^
      Ton setFrame m’a embrouillé 😛

      @utybo : impossible de déchiffrer ta dernière phrase dsl 😕 C’est pas français 😕

      –------------------------------------------------------------------------------------
      Si tu trouves mon intervention pertinente, n'hésite pas a m…

      1 réponse Dernière réponse Répondre Citer 0
      • T Hors-ligne
        totos51
        dernière édition par

        Mais du coup est ce que je dois laisser le setvisible(True) pour que l’affichage soit mis à jour?

        Edit, en m’inspirant de code que j’ai trouvé j’ai ajouté: Fenetre.this.revalidate(); dans mes action listener, et cela fonctionne.
        est ce la bonne solution?

        je remets sur le tapis cette question: Durant mes tests, ma fenetre ce bloque parfois quand j’appuis sur le bouton de generation, m’obligeant à interrompre depuis la console eclipse, à quoi cela pourrait il être dus?
        je ne trouve pas.

        1 réponse Dernière réponse Répondre Citer 0
        • ÜberfapÜ Hors-ligne
          Überfap
          dernière édition par

          Essaie de mettre ce qu’il y a dans l’action listener du bouton de génération dans un thread a part, si le GUI plante c’est à cause de l’EDT 😉

          Si je t'ai aidé, n'hésites pas à mettre un point de réputation positif !
          Si tu m'as aidé, je n'hésiterais pas à t'en donner à mon tour !

          1 réponse Dernière réponse Répondre Citer 0
          • utyboU Hors-ligne
            utybo
            dernière édition par

            Désolé Blackout, la fatigue a eu raison de moi ><

            Moddeur à la retraite et développeur de trucs en Java.

            J'aide les gens comme je peux, alors si mon message v…

            1 réponse Dernière réponse Répondre Citer 0
            • RedRelayR Hors-ligne
              RedRelay Moddeurs confirmés
              dernière édition par

              @‘AlphaSwittleTeam’:

              Essaie de mettre ce qu’il y a dans l’action listener du bouton de génération dans un thread a part, si le GUI plante c’est à cause de l’EDT 😉

              Surtout pas. setEquation va modifier l’affichage et il ne faut jamais modifier l’affichage depuis un autre thread. Ça créé des instabilité.

              Non c’est étrange que ta fonction setEquation() prenne aussi beaucoup de temps.
              Essaye de touver qu’est ce qui peut prendre du temps.

              Rien a voir avec ce problème mais dans ta classe Equation, dans le toString, tu fais un new String(), ça ne sert a rien pour ce que tu t’en sert mis a part instancier 2 chaines identiques.

              le new String() on s’en sert presque jamais.
              Quand tu fais new String(String a), la JVM créé la String a et la passe en parametre au constructeur de la classe String pour te donner quelque chose que tu as déjà.

              –------------------------------------------------------------------------------------
              Si tu trouves mon intervention pertinente, n'hésite pas a m…

              1 réponse Dernière réponse Répondre Citer 0
              • jglrxavpokJ Hors-ligne
                jglrxavpok Modérateurs
                dernière édition par

                Tu peux toujours envoyer un message à l’EDT pour rafraîchir la fenêtre, ça devrait mieux marcher.

                @http://docs.oracle.com/javase/tutorial/uiswing/concurrency/dispatch.html:

                It’s useful to think of the code running on the event dispatch thread as a series of short tasks. Most tasks are invocations of event-handling methods, such as ActionListener.actionPerformed. Other tasks can be scheduled by application code, using invokeLater or invokeAndWait. Tasks on the event dispatch thread must finish quickly; if they don’t, unhandled events back up and the user interface becomes unresponsive.

                Il faut donc utiliser SwingUtilities.invokeLater(…) pour envoyer un message (tu peux modifier ta fenêtre à l’intérieur de celui-ci)

                Modérateur sur MFF. 
                Mon Github: http://github.com/jglrxavpok
                Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

                1 réponse Dernière réponse Répondre Citer 1
                • RedRelayR Hors-ligne
                  RedRelay Moddeurs confirmés
                  dernière édition par

                  Ouais mais ne te complique pas la vie avec ça.
                  C’est une fausse solution, puisque normalement tu n’as pas besoin d’une grosse force de calcul pour générer une équation.
                  Tu as un truc qui consome trop pour ce que tu fais, il faut que tu trouve c’est quoi.

                  –------------------------------------------------------------------------------------
                  Si tu trouves mon intervention pertinente, n'hésite pas a m…

                  1 réponse Dernière réponse Répondre Citer 0
                  • ÜberfapÜ Hors-ligne
                    Überfap
                    dernière édition par

                    Ah oui excuse moi, je ne voulais pas dire un autre thread mais plutôt un Swing Worker 😉

                    Si je t'ai aidé, n'hésites pas à mettre un point de réputation positif !
                    Si tu m'as aidé, je n'hésiterais pas à t'en donner à mon tour !

                    1 réponse Dernière réponse Répondre Citer 0
                    • T Hors-ligne
                      totos51
                      dernière édition par

                      J’ai beau cherché selon ta piste Blackout, je ne vois pas ce qui peut trop consommer, mon équation peut difficilement bouffer moins si?

                      
                      public Equation(int nbrInconnue)
                      {
                      this.inconnu = nbrInconnue;
                      this.a = ((int) (Math.random()*10) + 1);
                      this.c = ((int) (Math.random()*10) + 1);
                      this.b = ((int) (Math.random()*10) + 1);
                      if (Math.random() >= 0.5)
                      this.a = (-1 * this.a);
                      if (Math.random() >= 0.5)
                      this.c = (-1 * this.c);
                      if (Math.random() >= 0.5)
                      this.b = (-1 * this.b);
                      }
                      
                      

                      et mon action listener porte sur ça:

                      
                      public void setEquation(Equation e)
                      {
                      this.answer.setText("X = ");
                      this.equation = e;
                      this.textEquation.setText(e.toString());
                      }
                      
                      

                      je vois pas où peut être le soucis en fait… La répétition de Math.random?

                      Sinon, en utilisant comme tu m’as dis this.pack(); je me retrouve à avoir les 2 premiers mots de mon JEditorPane et tout le reste en dehors des marges. J’ai pensé à setMargins() ou setBounds() mais cela ne fonctionne en rien, comment afficher tout un texte? dansd l’idée, mise en page automatique avec marge à droite?
                      Egalement avec this.pack quand je vais sur ma fenetre équation, un seul des 2 boutons devient visible, l’autre étant trop à droite de la fenetre.

                      1 réponse Dernière réponse Répondre Citer 0
                      • T Hors-ligne
                        totos51
                        dernière édition par

                        Finalement, je n’ai pas utilisé de BoxLayout, je ne parvenais pas à centrer mes objets dans ma fenêtre automatiquement, j’ai donc utilisé un flowLayout.
                        PAreillement pour le this.pack, j’ai préféré utilisé un this.setsize tout simplement pck le this.pack bouffer une bonne partie de ma fenetre et me cacher les composant (les élements de la fenetre équation étaient hors-champs)

                        en ce qui concerne le problème précédent:
                        this.textEquation.setText(e.toString());

                        le soucis venez de cette ligne, en effet la fonction toString demander à ce que la fonction soit simplifier, hors la fonction simplifier était trop lourde puisqu’elle essayais de simplifier la fraction part tout les nombres compris entre 2 et max(numerateur, denominateur). j’ai modifié en prenant les nombres compris entre 0 et racine carré de (max(numerateur, denominateur)+10)

                        Je vais donc commencer la suite 🙂

                        Laissez moi vos commentaires! 🙂

                        1 réponse Dernière réponse Répondre Citer 0
                        • RedRelayR Hors-ligne
                          RedRelay Moddeurs confirmés
                          dernière édition par

                          Gardes le pack(), utilise setPreferredSize() sur tes composants pour fixer la taille idéale.
                          Ensuite tu utilise SwingUtilities pour remonter l’arborescence et appeler la methode pack().

                          Le problème du flowlayout apparaitra lorsque tu va gérer les entrés d’équation a inconnu multiple.
                          Mais en attendant, tu peux le garder si tu veux.

                          –------------------------------------------------------------------------------------
                          Si tu trouves mon intervention pertinente, n'hésite pas a m…

                          1 réponse Dernière réponse Répondre Citer 0
                          • T Hors-ligne
                            totos51
                            dernière édition par

                            Un petit up pour dire que je m’y remets un peu, que je re-avance doucement pour essayer de finir, je pense pas que cela soit vraiment nouveau, j’essaie juste d’appliquer au mieux les remarques précédentes.

                            • Je me suis attaqué au gridbagLayout, en fait c’est assez long, mais ça fonctionne plutôt bien, même avec une petite échelle comme ça on constate nettement la difference.

                            Maintenant va falloir gérer les exceptions et les quelques problème pour les fractions, pour pas que -10/-5 != 2 ^^’

                            Edit: les exceptions et les petits soucis de fractions sont régles, c’était surtout longs en fait, j’aimerai votre avis sur le dernier commit, principalement la méthode equals(String) de la classe Fraction.

                            Ps: Comment depuis github on envoie un lien pointant vers une partie de fichier seulement, fin qui est orienté vers cette partie de fichier?

                            1 réponse Dernière réponse Répondre Citer 0
                            • 1 / 1
                            • Premier message
                              Dernier message
                            Design by Woryk
                            ContactMentions Légales

                            MINECRAFT FORGE FRANCE © 2024

                            Powered by NodeBB