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

 Java Discussion :

Afficher un background dans ma fenêtre


Sujet :

Java

  1. #41
    Membre du Club
    Homme Profil pro
    Artisant
    Inscrit en
    Avril 2018
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Artisant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2018
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    C'est assez obscur pour moi. Tu as deux types de config ? Et tu veux alterner entre les deux,sur F8 ?
    Oui, a la base je n'en avais qu'un, mais pour aller a la config 5 je doit appuyé 5 fois la touche.



    Mais pour plus de commodité je me suis dit sa serait bien d'avoir deux type de config sélectionné a l'écran et de pouvoir switché a la vole


    J'aurais 20 config au final, 10 Affiche par F5 et 10 par F6



    Et F8 me permettrais d'alterne entre les deux config a la vole

    merci

    Fred

  2. #42
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par R1beLlu2B Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      si pas de staic pour le confiDManager2
        static ConfigManager2 configManager2 = ConfigManager2.getInstance();
    Normalement, pas besoin de configManager2. Et attention aux majuscules/minuscules...

    Citation Envoyé par R1beLlu2B Voir le message
    J'ai d'erreur dans mon code, celui ci ce compile bien mais je doit écrire comme le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     g2.setColor(new Color(225, 96, 0));
                g2.drawString( ?????????);
    C'est à dire ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #43
    Membre du Club
    Homme Profil pro
    Artisant
    Inscrit en
    Avril 2018
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Artisant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2018
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    Mon code compile sans probleme, desole faute de frappe

    J'ai d'erreur dans mon code, celui ci ce compile bien mais je doit ecrire comme le
    je voulais dire : Je n'es pas d'erreur dans mon code, celui ci ce compile bien mais je ne sais pas comment formule dans :


    g2.setColor(new Color(225, 96, 0));
    g2.drawString( ?????????);

    pour affiche la réponse de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (e.getKeyCode() == NativeKeyEvent.VC_F8) {
        if ( Main.configManager==ConfigManager.getInstance() ) {
             Main.configManager=ConfigManager2.getInstance();
        }
        else {
             Main.configManager=ConfigManager.getInstance();
        }
    }
    Merci

    Fred

  4. #44
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par R1beLlu2B Voir le message
    pour affiche la réponse de :
    tu veux dire pour afficher quelle "config manager" est sélectionné ?

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if ( Main.configManager==ConfigManager.getInstance() ) {
             g2.drawString( "config manager est sélectionné", ..., ...);
        }
        else {
             g2.drawString( "config manager 2 est sélectionné", ..., ...);
        }
    Ou alors, tu ajoutes la notion de nom dans ConfigManager :
    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
    public class ConfigManager {
     
      public static ArrayList<Config> configs = new ArrayList<>();
      private static ConfigManager ourInstance = new ConfigManager("Config manager 1");
      private static ConfigManager ourInstance2 = new ConfigManager("Config manager 2");
      int currentConfig = 0;
      String nom;
      private ConfigManager(String nom) {
        this.nom=nom;
      }
       public static ConfigManager getInstance() {
           return ourInstance;
       }
       public static ConfigManager getInstance2() {
           return ourInstance2;
       }
       public String getNom() {
             return nom;
       }
       /*... le reste du code ... */
    }
    Et donc il suffira d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
             g2.drawString( Main.configManager.getNom(), ..., ...);
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #45
    Membre du Club
    Homme Profil pro
    Artisant
    Inscrit en
    Avril 2018
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Artisant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2018
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    tu veux dire pour afficher quelle "config manager" est sélectionné ?

    Je voulais dire que ça affiche le contenu qu'il y a dans le configmanager selectionner.


    J'ai une erreur sur le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (e.getKeyCode() == NativeKeyEvent.VC_F8) {
        if ( Main.configManager==ConfigManager.getInstance() ) {
             Main.configManager=ConfigManager2.getInstance();   //la ligne reste surligne en rouge
        }
        else {
             Main.configManager=ConfigManager.getInstance();
        }
    }

    Incompatible typeRequired:
    r1bellu2b.norecoil.ConfigManager
    Found:
    r1bellu2b.norecoil.ConfigManager2


    Fallais bien que ca ce complique un peu l'histoire

  6. #46
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par R1beLlu2B Voir le message
    J'ai une erreur sur le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (e.getKeyCode() == NativeKeyEvent.VC_F8) {
        if ( Main.configManager==ConfigManager.getInstance() ) {
             Main.configManager=ConfigManager2.getInstance();   //la ligne reste surligne en rouge
        }
        else {
             Main.configManager=ConfigManager.getInstance();
        }
    }

    Incompatible typeRequired:
    r1bellu2b.norecoil.ConfigManager
    Found:
    r1bellu2b.norecoil.ConfigManager2
    C'est parce que tu as fait 2 classes, ConfigManager et ConfigManager2, pour gérer les 2 "gestionnaires de configuration", et que ConfigManager2 ce n'est pas ConfigManager. Il n'y a pas de raison de faire 2 classes, puisque dans les deux cas, c'est la même chose que tu veux représenter (d'ailleurs les 2 classes doivent être exactement pareilles, à part le 2 dans le nom. Il faut surtout que configs ne soit pas static (sinon c'est partagé entre les instances de ConfigManager). Ce genre de variable static empêche de faire plusieurs instances de la même classe entre autres : c'est une mauvaise pratique que de faire des variables statiques (pour une souplesse maximum, seule la méthode main devrait être static dans ton programme).

    Regarde dans le dernier exemple que je t'ai donné : j'ai mis les deux instances de gestionnaire dans ConfigManager, avec deux instances différentes, et deux méthodes différentes getInstance() et getInstance2().

    L'important c'est que static ConfigurationManager configManager; soit de la classe ConfigurationManager. Si tu veux continuer à avoir 2 classes, tu pourrais faire quelque chose comme ça, pour la classe ConfigurationManager, en déclarant le constructeur public au lieu de private :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class ConfigurationManager {
          /*... le reste du code ne change pas */
       public ConfigurationManager(String nom) {
          /*... le reste du code ne change pas */
       }
          /*... le reste du code ne change pas */
    }
    Tu supprimes juste la méthode getInstance(), et la déclaration de la variable ourInstance.

    puis tu fais deux classes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class ConfigurationManager1 {
        private static ConfigurationManager configurationManager = new ConfigurationManager("Config manager 1");
        public static ConfigurationManager getInstance() {
             return configurationManager;
        }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class ConfigurationManager2 {
        private static ConfigurationManager configurationManager = new ConfigurationManager("Config manager 2");
        public static ConfigurationManager getInstance() {
             return configurationManager;
        }
    }
    Ainsi, tu peux appeler ConfigrationManager1.getInstance() ou ConfigurationManager2.getInstance() selon. Mais c'est juste une histoire de nom.

    Il y a également ce moyen, avec une enum :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public enum ConfigurationManager {
     
       CONFIGMANAGER1,
       CONFIGMANAGER2;
     
       private List<Config> configs = new ArrayList<>();
      private int currentConfig = 0;
     
    /* reste du code pareil qu'actuellement, mais aucun static */
     
    }
    Tu n'as même plus besoin de variable ourInstance et de méthode getInstance(). On peut directement accéder à un ConfigurationManager :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (e.getKeyCode() == NativeKeyEvent.VC_F8) {
        if ( Main.configManager==ConfigManager.CONFIGMANAGER1 ) {
             Main.configManager=ConfigManager.CONFIGMANAGER2;   
        }
        else {
             Main.configManager=ConfigManager.CONFIGMANAGER1;
        }
    }
    (voir utiliser le même système que pour VitesseChoix, avec la méthode next, pour cycler sur les différents "Config Manager", c'est exactement pareil finalement.

    et pour afficher le nom :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g2.drawString(Main.configManager.name(), x, y);
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #47
    Membre du Club
    Homme Profil pro
    Artisant
    Inscrit en
    Avril 2018
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Artisant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2018
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    Merci pour les conseils.

    J.ai essaye la deuxieme methode, ca fonctionne mais pas de defilement sur F8,

    Je vais regarde au niveau de l.enum, j.ai du oublie un truc .

    Demain je vais essaye la premiere methode
    Pour voir le resultat egalement.

    Apres si je m.en sort pas. Est ce que je peu faire ceci (peu etre plus a ma porte) :
    - class Configmanager1-->class config1-->configs(mes .json)
    - class Configmanager2-->class config1-->configs (mes .json)

    Bien entendu je devrai faire aussi un autre switch configs2 pour le defillement et d'autre bricole.

    Ca allourdie mon code mais je me sent plus de le faire si ca marche.


    Merci

    Bonne soiree

    Fred

  8. #48
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par R1beLlu2B Voir le message
    Apres si je m.en sort pas. Est ce que je peu faire ceci (peu etre plus a ma porte) :
    - class Configmanager1-->class config1-->configs(mes .json)
    - class Configmanager2-->class config1-->configs (mes .json)
    Tu peux toujours, mais ça va compliquer horriblement le programme et tu vas risquer des erreurs de confusions. Tu vas devoir tout dupliquer, utiliser une variable supplémentaire pour savoir lequel des deux utiliser et avoir des ifs pour tester cette variable. Et si tu as besoin de faire une évolution, il faudra penser à la faire 2 fois.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  9. #49
    Membre du Club
    Homme Profil pro
    Artisant
    Inscrit en
    Avril 2018
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Artisant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2018
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    Bonjour,

    Comment allez vous?


    J'ai de bonne nouvelle ,

    j'ai reussi a faire ce que je souhaitais, du moins en quasi totalité.

    j'ai fait mon button VC_F8 qui switch entre le config manager 1 et 2 (du moins qui m'affiche l'info su config manager 1 ou 2)


    J'ai juste un petit soucis au niveau de la mise en mémoire des otpions.

    Elle marche bien avec les 2 choix de config qui sont sur présent, mais quand j'utilise mon switch celui ci ne me fais que le changement de non mais pas de config.



    j'ai fait comme ceci pour pouvoir faire le changement de config a la vole :

    La touche qui fait le changement :

    Dans le Main :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     static Mode mode = Modes.MODE1;
    //
    //
    // Mon enum
     public enum Mode {
            MODE1, MODE2;
            public Mode next(Mode mde1) { return Mode.values()[(ordinal() + 1) % Mode.values().length];
        }
     }
    la couleur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    switch (Main.mode) {
     
        case MODE1:
     
            g2.setColor(Color.GREEN);
            g2.drawString(ConfigManager1.getInstance1().getCurrentConfig1().name, 230, 245);
            break;
        case MODE2:
     
            g2.setColor(new Color(128, 150, 255));
            g2.drawString(ConfigManager2.getInstance2().getCurrentConfig1().name, 230, 245);
    }
    Et la touche de changement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     if (e.getKeyCode() == NativeKeyEvent.VC_F5) {
           Main.mode = Main.mode.next (MODE1);
          Main.memoireChoix.put(ConfigManager1.getInstance1().getCurrentConfig1(),Main.choix);
          Main.memoireChoix.put(ConfigManager2.getInstance2().getCurrentConfig1(),Main.choix);
      }

    Je me demande si je doit pas refaire un autre switch en parallele du premier qui lui gere le changement d'etat

    ou alors rajoute une ligne au niveau du code de la touche de changement



    Merci

    Fred

  10. #50
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par R1beLlu2B Voir le message
    Et la touche de changement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     if (e.getKeyCode() == NativeKeyEvent.VC_F5) {
           Main.mode = Main.mode.next (MODE1);
          Main.memoireChoix.put(ConfigManager1.getInstance1().getCurrentConfig1(),Main.choix);
          Main.memoireChoix.put(ConfigManager2.getInstance2().getCurrentConfig1(),Main.choix);
      }

    Je me demande si je doit pas refaire un autre switch en parallele du premier qui lui gere le changement d'etat
    Bah, oui, dans ce cas-là (que tu n'aurais pas eu si tu avais qu'une seule classe), à chaque fois qu'on appuie sur F5, on mémorise le choix pour les deux "config manager". Je te l'ai dit, avec deux classes, tu es obligé de dupliquer tout le code partout, mais pas exécuter les deux à chaque fois, mais alternativement en fonction du mode ou du choix... !!!

    En plus, ce n'est pas logique : lorsque tu changes de mode, il faut mémoriser le choix avant de changer. Après, ça n'a aucun sens. Ou alors tu le stockes après chaque changement de choix, mais pas de mode. En revanche, après avoir changé de mode, il faut restaurer le choix mémorisé pour le mode (c'est le problème d'avoir la variable (et une variable unique en plus) en dehors du config manager).

    Mais tu peux effectivement utiliser un switch.

    Mais déjà, enlève le paramètre de next qui ne sert à rien (à part compliquer inutilement l'appel) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public enum Mode {
            MODE1, MODE2;
            public Mode next() { return Mode.values()[(ordinal() + 1) % Mode.values().length];
        }
     }
    et donc, avec le switch :

    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
     if (e.getKeyCode() == NativeKeyEvent.VC_F5) {
          switch(Main.mode) { // mémorisation choix
          case MODE1:
          Main.memoireChoix.put(ConfigManager1.getInstance1().getCurrentConfig1(),Main.choix); 
                   break;
          case MODE2:
          Main.memoireChoix.put(ConfigManager2.getInstance2().getCurrentConfig1(),Main.choix);
                  break;
          }
           Main.mode = Main.mode.next (); // on passe au mode suivant
          switch(Main.mode) { // restauration choix précédemment mémorisé
          case MODE1:
          Main.choix = Main.memoireChoix.getOrDefault(ConfigManager1.getInstance1().getCurrentConfig1(),1); 
                   break;
          case MODE2:
          Main.choix = Main.memoireChoix.getOrDefault(ConfigManager2.getInstance2().getCurrentConfig1(),1);
                  break;
          }
      }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  11. #51
    Membre du Club
    Homme Profil pro
    Artisant
    Inscrit en
    Avril 2018
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Artisant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2018
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    D'accord,

    j'ai fait deux config manager car j'ai passer la journée a essaye les méthode mais sans succés.


    je retenterai l'experience plus tard .



    J'ai rentre le code que vous m'avez donnée mais il m'indique une erreur au niveau des default value :


    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
    if (e.getKeyCode() == NativeKeyEvent.VC_F5) {
          switch(Main.mode) { // mémorisation choix
          case MODE1:
          Main.memoireChoix.put(ConfigManager1.getInstance1().getCurrentConfig1(),Main.choix); 
                   break;
          case MODE2:
          Main.memoireChoix.put(ConfigManager2.getInstance2().getCurrentConfig1(),Main.choix);
                  break;
          }
           Main.mode = Main.mode.next (); // on passe au mode suivant
          switch(Main.mode) { // restauration choix précédemment mémorisé
          case MODE1:                                                                                                                            ICI
          Main.choix = Main.memoireChoix.getOrDefault(ConfigManager1.getInstance1().getCurrentConfig1(),1); 
                   break;                                                                                                                    erreur du chiffre 1
          case MODE2:                                                                                                                            ICI
          Main.choix = Main.memoireChoix.getOrDefault(ConfigManager2.getInstance2().getCurrentConfig1(),1);
                  break;                                                                                                                     erreur du chiffre 1
          }
      }

  12. #52
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par R1beLlu2B Voir le message

    J'ai rentre le code que vous m'avez donnée mais il m'indique une erreur au niveau des default value :
    Comme tu as changé 36 fois le code sans me montrer à chaque fois le nouveau, j'ai supputé que la valeur par défaut c'était 1, mais tu dois la remplacer par ce qu'il convient pour la variable choix (je ne sais plus au final ce que tu as utilisé comme type).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  13. #53
    Membre du Club
    Homme Profil pro
    Artisant
    Inscrit en
    Avril 2018
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Artisant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2018
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    J'ai trouve mon erreur,


    j'ai supprime les ligne sur les autre bouton qui servait a enregistre.






    Ca marche exactement comme je voulais.

    Merci beaucoup.


    Prochaine étape:

    Autorise l'utilisateur a pouvoir zoomer et dezoomer mais dans des limite données.

    Ajoute dela posibilite a l'utilisateurs de choisir ca propre configuration des touches

    Je vais rigole la


    bonne soirée et merci

  14. #54
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par R1beLlu2B Voir le message
    Je vais rigoler là.
    Surtout que ça commence à être une sacrée usine à gaz ce code. Si tu me donnes l'ensemble (fais un zip), je te montrerais comment on peut simplifier tout ça.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  15. #55
    Membre du Club
    Homme Profil pro
    Artisant
    Inscrit en
    Avril 2018
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Artisant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2018
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    Oui bon une petite usine alors XD,

    Mais ca fonctionne.

    Je vais dimplifie deja au niveau du fond, je vais supprime les rectangle et mon image pour en metre une seule imageque j.aurai prepare avec mes cadre pour les boiton etccc. Ca serai plis jolie.

    Oui je vous l'enverrai bien volontier quznd j.aurai insere mes derniere idee.

    Pour apprendre rien de mieux que de mettre les mains dedans faire fonctionne et apres de voir une autre solution bien plus facile .

    Merci


    Bonne soiree

  16. #56
    Membre du Club
    Homme Profil pro
    Artisant
    Inscrit en
    Avril 2018
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Artisant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2018
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    Bonjour,

    Alors ca y est je vais m.attaque a la posibilite d.avoir des petits panneaux deroulant (voir 1 seul) ou l.utilisateur (moi a l.heure acteul) puisse change la configuration des touches par default qui sont paramettre dans mon code.

    J.ai fouille un peu par ci par la mais j.ai rien trouve qui coreespond a ma demande. Aucune base de depart.

    Apres j.ai regarde egalement pour qu.ont es la possibilitte de retrecir ou grandir le panel et tout son contenu (la jframe etant non apparente).J.ai trouve quelque info mais je me demande si il ne va pas y avoir un soicis au niveau de l.image de fond par exemple.
    Doit je utilise une image vectoriel ou alors JAVA a la grande surprise de la faire .


    Merci


    Fred

  17. #57
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,
    Citation Envoyé par R1beLlu2B Voir le message
    la posibilite d.avoir des petits panneaux deroulant (voir 1 seul)
    Qu'est-ce que tu appelles un "panneau déroulant".
    • un menu popup ? Aussi appelé menu contextuel, il s'ouvre en général par appuie du bouton de droite de la souris (mais on peut le faire apparaître comme on veut). Pour faire ça, voir la méthode setComponentPopupMenu de JPanel.
    • un combo ? Un champ de saisie qui propose différents choix (un peu comme un champ de saisie qui aurait un menu popup qui s'ouvre en dessous). Comme tu as fait toute ton interface à la mano, au lieu d'utiliser des composants Swing (comme je te l'avais conseillé), tu ne pourras pas utiliser le composant JComboBox prévu à cet effet. Tu est obligé de tout faire toit même à la mano (ou éventuellement utiliser un menu popup pour simuler la partie dropdown de la combo du moins)
    • un popup/popin ? Un composant qui s'affiche par dessus le reste.
      1. un popup c'est un JPanel qui s'affiche dans sa propre fenêtre (au dessus de la fenêtre principale) et qui se ferme lorsqu'il perd le focus. Cela se gère avec les écouteurs adaptés.
      2. un popin c'est un JPanel qui s'affiche à l'intérieur de la fenêtre. Cela peut se gérer avec un layout particulier, ou par le système de layout de la JFrame (voir getLayeredPane() de JFrame). On peut également utiliser un JLayer, qui est peut-être le plus simple (en plus on peut mettre en place des effets sympas, comme un blur sur la fenêtre).
      3. On peut complètement simuler ça en Java2D. Puisque actuellement tu dessines tout le contenu de ta fenêtre en Java2D, tu peux tout aussi bien affiché par dessus un rectangle avec un autre texte, et donc simuler un popup. Et gérer la souris pour l'interactivité.

      A citer également le dialogue, modal ou pas : une fenêtre qui s'affiche par dessus la fenêtre principale mais qui est dépendante d'elle. Lorsqu'il est modale, il bloque l'interaction dans la fenêtre principale. C'est un peu le cas 1, l'utiliser à l'avantage d'éviter justement d'avoir à coder soi-même toute la gestion événementielle des comportements relatifs entre les deux fenêtres. Contrairement au cas 2 & 3 où la popin ne peut s'afficher en dehors de la fenêtre, la popup ou le dialogue peut dépasser de la fenêtre principale


    Citation Envoyé par R1beLlu2B Voir le message
    Apres j.ai regarde egalement pour qu.ont es la possibilitte de retrecir ou grandir le panel et tout son contenu (la jframe etant non apparente).
    Il faut que tu le fasses complètement toi-même avec un MouseAdapter en changeant les bounds de la JFrame, exactement comme tu as dû faire pour déplacer la JFrame.

    Citation Envoyé par R1beLlu2B Voir le message
    si il ne va pas y avoir un soicis au niveau de l.image de fond par exemple.
    Tu parles de l'adaptation de la taille de l'image à la taille de la JFrame, je suppose. Avec drawImage, tu peux dessiner une image dans la taille que tu veux, donc celle du panel, et comme le panel a la taille de la fenêtre, ça fonctionne, mais ça peut poser un problème au niveau de la proportionnalité. Cela dépend de l'image. Il se peut que si on ne respecte pas la proportionnalité entre hauteur et largeur, on ait une déformation de l'image non voulue. Et puis, l'image peut constituer une texture également, qu'on ne veut pas agrandir ou rapetisser en fonction de la taille de l'image, mais qu'on veut juste que ça remplisse toujours tout le fond. Dans quel cas es-tu ?


    Citation Envoyé par R1beLlu2B Voir le message
    Doit je utilise une image vectoriel ou alors JAVA a la grande surprise de la faire .
    Une image vectorielle, ça dépend, pourquoi pas, mais faut voir les performances. Cela me semble overkill en tout cas.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  18. #58
    Membre du Club
    Homme Profil pro
    Artisant
    Inscrit en
    Avril 2018
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Artisant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2018
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    Tu parles de l'adaptation de la taille de l'image à la taille de la JFrame, je suppose. Avec drawImage, tu peux dessiner une image dans la taille que tu veux, donc celle du panel, et comme le panel a la taille de la fenêtre, ça fonctionne, mais ça peut poser un problème au niveau de la proportionnalité. Cela dépend de l'image. Il se peut que si on ne respecte pas la proportionnalité entre hauteur et largeur, on ait une déformation de l'image non voulue. Et puis, l'image peut constituer une texture également, qu'on ne veut pas agrandir ou rapetisser en fonction de la taille de l'image, mais qu'on veut juste que ça remplisse toujours tout le fond. Dans quel cas es-tu ?

    Je suis dans le cas numéro deux mais ça je peu m'adapte. Mon design final n'es pas encore défini.


    Qu'est-ce que tu appelles un "panneau déroulant".
    Un petit panneaux qui s'affiche quand ont clique sur un mot affiche a l'ecran.

    Dans mon panel, j'ai écrit une "légende" en haut, c'est a dire : F12: To Quit F11: Pause , ainsi de suite , sa explique a l'utilisateur les touches qui servent a faire fonctionne le programme.

    C'est juste de l'affichage. Ce que je veux essaye de faire c'est de rendre par exemple F12: to quit cliceable (donc j'ai déja compris que je devais faire un bouton) et quand l'utilisateur clique dessus ça affiche une liste (exemple: )

    F12
    F11
    F10
    F8
    Mouse1
    Mouse2
    .....

    et quand il selectionne un choix ça enregistre le paramettre et : to QUIT ça deviens le bouton qu'il a choisi . XD


    oui simplement je fait un bouton paramettre qui affiche une fenêtre dans laquel ont peu modifieé les paramettre des touches. Peu être plus simple

    Mais les paramettre doivent reste en mémoire, il me semble avoir lu un sujet la dessus, faudra que je le retrouve



    Fred

  19. #59
    Membre du Club
    Homme Profil pro
    Artisant
    Inscrit en
    Avril 2018
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Artisant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2018
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    Je pense avoir trouve ma réponse en réflechissant un peu

    je faire comme vous avez dit, je créer des rectangle que je simule des popup,
    a l'interieur je met ma liste de touche/bouton

    et pour que ca change la touche je fait un swing comme j'ai fait pour les fonctions.

    je pense que ca marcherai mais j'ai l'impression que c'est une méthode qui contournerai le probleme

  20. #60
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par R1beLlu2B Voir le message
    Je suis dans le cas numéro deux mais ça je peu m'adapte. Mon design final n'es pas encore défini.
    Euh, c'est quoi le cas "2" ?

    Citation Envoyé par R1beLlu2B Voir le message
    Un petit panneaux qui s'affiche quand ont clique sur un mot affiche a l'ecran.
    Oui ça j'avais compris (plus ou moins, puisque tu n'avais pas parlé de cliquer sur un mot), mais il y a plein de manière de réaliser ça (voir ce que j'ai écrit dans mon dernier message). Avec une ui standard, ça pourrait être une JCombo vu ce que tu décris. Mais comme tu as tout fait à la mano, ça va être plus compliqué :
    1. pour l'affichage, un menu popup serait le plus simple à priori
    2. seulement le plus gros souci c'est détecter sur quel mot on clique. Eventuellement, tu pourrais stocker les "bounds" des textes au moment de paint, et utiliser ces bounds pour tester si la souris se trouve dedans (avec la méthode contains)




    Citation Envoyé par R1beLlu2B Voir le message
    oui simplement je fait un bouton paramettre qui affiche une fenêtre dans laquel ont peu modifieé les paramettre des touches. Peu être plus simple
    Un dialogue quoi.

    Citation Envoyé par R1beLlu2B Voir le message
    Mais les paramettre doivent reste en mémoire, il me semble avoir lu un sujet la dessus, faudra que je le retrouve
    Rester en mémoire ? Tu veux parler même après avoir fermé l'application ? Ce n'est pas "rester en mémoire" ça. Pour faire ça, tu peux utiliser les "préférences" par exemple (Voir https://docs.oracle.com/javase/8/doc...ces/index.html).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. Réponses: 5
    Dernier message: 19/05/2008, 20h58
  2. [PB 10.5] Afficher une image dans une fenêtre
    Par cagoule dans le forum Powerbuilder
    Réponses: 2
    Dernier message: 27/02/2007, 22h22
  3. Réponses: 4
    Dernier message: 26/01/2007, 07h39
  4. Afficher un shell dans une fenêtre wxWidget
    Par BlueCat dans le forum wxWidgets
    Réponses: 3
    Dernier message: 05/09/2006, 22h38
  5. afficher une image dans une fenêtre windows
    Par yashiro dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 02/05/2006, 16h30

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