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 :

[swing et Awt]cohabitation obligatoire


Sujet :

AWT/Swing Java

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 13
    Points : 10
    Points
    10
    Par défaut [swing et Awt]cohabitation obligatoire
    Bonjour, je me trouve dans une situation ou je dois faire cohabiter awt et swing, je dois faire un rpg 2D, l'affichage des personnage et de la carte utilise du double buffering, l'interface du joueur (la fenetre listant les quetes, la fenetre des objets du joueur etc..) est elle en swing. L'idéal serait de pouvoir afficher l'interface par dessus la carte (qui est un composant awt), mais après pas mal de recherche il semble que c'est strictement impossible. Donc la solution est soit de faire une croix sur la superposition soit de mettre l'interface du joueur dans de nouvelles JFrame !!! Ma question est alors peut-on gérer la superposition des JFrames les unes par rapport aux autres ? Par exemple un clique sur un personnage ne doit pas faire disparaitre les autres JFrames. (3eme solution tout refaire mais ce projet est a rendre trop tôt hélas)

  2. #2
    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
    Pourquoi cohabitation obligatoire ? Il y a une solution à ton problème mais je ne vois rien qui justifie AWT là. Quant au double buffering... utilise Swing et tu l'auras gratuitement.

  3. #3
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    pour le double buffering, vois du coté de BufferStrategy il me semble ... mais c'est AWT.

    bon courage !

    mavina

  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
    A moins d'être en plein écran il n'y a pas de raison d'utiliser BufferStrategy. Swing EST double-buffered déjà.

  5. #5
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    ah bah tiens je ne savais pas ... Ya rien de marqué sur la javadoc sur le fait que c'est utile qu'en plein écran

    mavina

  6. #6
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    En fait quand je dis cohabitation obligatoire c'est rapport au peu de temps qu'il reste avant de rendre le projet, je ne suis pas la personne qui à écrit le code qui affiche les personnages et la carte donc je ne connais pas vraiment les contraintes que cela a imposé. Je sait par contre que le double buffering utilisé est hardware et que l'affichage se fait en plein écran. Et l'affichage fait en sorte que l'écran défile en même temps que le personnage se déplace.

  7. #7
    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
    Alors regarde la méthode JPopupMenu.setLightWeightPopupEnabled(boolean enabled). Appelle-la en fournissant la valeur false et tu devrais régler tes problèmes.

  8. #8
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Cette méthode permet d'afficher des composant SWING par dessus des composant AWT ? Par exemple en se servant du JPopupMenu comme container placé dans la JFrame utilisant le double buffering, il me manque peut-être quelque chose mais même dans le JPopupMenu "heavyweight" les composant SWING restent cachés. Et je ne peux pas me passer de SWING si je veu modifier le look n feel et utiliser le drag n drop, enfin je crois. J'ai peur que je soit condamné à utiliser plusieurs JFrame, ce qui n'est pas si gênant en fait, le seul probleme peut-être est que l'on ai plusieurs fenêtre d'ouverte dans la barre des tâches.

  9. #9
    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
    Cela résoud le problème pour les menus et menus contextuels. Pour le reste il faudra te contenter de placer les composants Swing autour de tes composants AWT ou mieux, transformer le composant AWT en composant Swing. Cela ne demande que très peu de travail (en gros Canvas -> JComponent).

  10. #10
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Il semblerait qu'une solution possible pour mélanger swing et du double buffering hardware soit d'appeller paintComponents(buffer) dans le thread chargé du double buffering, c'est très instable sur certain pc, je ne sais absolument pas pourquoi.

Discussions similaires

  1. Crée une IHM swing ou awt avec netbeans
    Par Wilgard dans le forum NetBeans
    Réponses: 3
    Dernier message: 18/04/2007, 12h03
  2. Réponses: 5
    Dernier message: 08/01/2007, 20h40
  3. Java - Swing et awt
    Par adilo dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 26/08/2006, 16h50
  4. Swing ou AWT ?
    Par Rekiem dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 21/01/2006, 13h53
  5. swing et AWT
    Par milootooloo dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 03/11/2005, 17h14

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