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

AWT/Swing Java Discussion :

Conversion AWT vers SWING


Sujet :

AWT/Swing Java

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 20
    Points : 14
    Points
    14
    Par défaut Conversion AWT vers SWING
    Bonjour,

    J'essaye de convertir mon programme de AWT vers SWING. J'ai donc transformé la Frame en JFrame, le Menu en JMenu les Panel en JPanel ...
    Mais le menu n'est bizarement visible que lorsque je passe la souris dessus et encore pas dans sa totalité. D'où cela pourrait-il venir.

    Voici le code du menu dans la fonction init() de la classe jlm qui extends JFrame :

    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
    /************************************************************************/
    /******************************** MENU *********************************/
    /***********************************************************************/
     
     
           jeu.add(lectnote);
           jeu.add(lectrythme);
           jeu.addSeparator();
           jeu.add(quitter);
           lectnote.addActionListener(this);
           lectrythme.addActionListener(this);
           quitter.addActionListener(this);
           maBarre.add(jeu);
     
            maBarre.add(parametres);
     
     
            language.setMnemonic(KeyEvent.VK_L);
            language.add(french);
            language.add(english);
            french.addActionListener(this);
            english.addActionListener(this);
            maBarre.add(language);
     
            aide.add(aidesommaire);
            aide.add(apropos);
            aidesommaire.addActionListener(this);
            apropos.addActionListener(this);
            maBarre.add(aide);
     
             this.setJMenuBar(maBarre);
    la fonction main() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     public static void main(String arg[]) {
     
    jlm l = new jlm();
    l.init();
    l.setSize(680,480);
    l.repaint();
    l.setVisible(true);
    l.setResizable(false);
    l.setLocationRelativeTo(null); //On centre la fenêtre sur l'écran
    l.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     
      }
    Merci

  2. #2
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Je ne vois pas trop la cause...Essaye de mettre le setVisible(true) comme dernière instruction dans ton main.

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 20
    Points : 14
    Points
    14
    Par défaut
    Merci afrikha mais cela ne change rien. C'est assez étrange car cela fonctionnait bien avec AWT.

    J'ai bien trouvé un message en anglais relatant un problème semblable http://jguru.com/forums/view.jsp?EID=1303785 causé par une interference entre AWT et SWING mais il me semble bien avoir tout convertit. J'utilise un JPanel avec des boutons et cela fait exactement la même chose (visible uniquement lors du passage de la souris).

  4. #4
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Tu as forcément oublié de convertir quelque chose

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 20
    Points : 14
    Points
    14
    Par défaut
    Lorsque je supprime les fonctions paint et update que j'utilise pour l'animation avec double Buffering le menu apparait normalement. Ce qui est bizarre c'est que cela fonctionnait bien avec AWT. Comment remplacer ces fonctions pour mon animation avec SWING.

    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
     
      public void paint(Graphics g) {
         update(g);    
     
          }
     
     
      public void update(Graphics g){
     
          Dimension d=getSize();
     
             buffer=createImage(getSize().width,getSize().height);
            bufferg=buffer.getGraphics();
            bufferg.drawImage(imagefond,0,0,this);
     
            Color c = new Color(5,5,100);
            bufferg.setColor(c);
            afficheversion(bufferg,c);
            bufferg.setFont(new Font("Arial",Font.BOLD,40));
            bufferg.drawString("LECTURE DE NOTE",140,210);
            bufferg.setFont(new Font("Arial",Font.BOLD,15));
     
          }
     
          g.drawImage(buffer,0,0,this);    // affiche le buffer
     
          }

  6. #6
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Swing prend en charge le double buffering pour toi. En Swing on ne surcharge ni update() ni paint() mais paintComponent(). En fait tu perturbes Swing en faisant ce que tu fais

  7. #7
    Membre à l'essai
    Inscrit en
    Octobre 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 20
    Points : 14
    Points
    14
    Par défaut
    Merci Gfx, je vais utiliser paintComponent à la place de Paint et Update.

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

Discussions similaires

  1. Conversion Unix vers DOS...
    Par nicosfly dans le forum Langage
    Réponses: 4
    Dernier message: 23/06/2008, 17h53
  2. [VBA-E] macro conversion excel vers csv
    Par baboune dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/07/2004, 09h23
  3. conversion Access vers SQL
    Par Bjuice2 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 23/03/2004, 13h57
  4. [langage] conversion décimal vers hexa
    Par chipster dans le forum Langage
    Réponses: 2
    Dernier message: 23/02/2004, 16h05
  5. Conversion Timestamp vers varchar
    Par stejutt dans le forum SQL
    Réponses: 4
    Dernier message: 08/01/2004, 08h46

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