Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Invité de passage
    Inscrit en
    avril 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : avril 2012
    Messages : 10
    Points : 3
    Points
    3

    Par défaut Transition entre JFrame en fullscreen

    Bonjour,

    j'ai opté dans ma conception d'application pour l'utilisation de plusieurs jframes selon le modèle "jframe<-jpanel" chaque couple gérant ses propriétés de boutons et souris ce qui me permet de séparer facilement les différentes fenêtres dont les actions sont très spécifiques.

    Cependant, travaillant en mode plein écran, à chaque transition d'une jframe à l'autre, je vois passer le bureau windows en appliquant la séquence suivant :

    classpleinecran.fonctionfullscreen(new JFrameNouvelle());
    JFramePrecedente.this.dispose();

    => Est-il possible d'éviter cet effet visuel de transition qui montre qu'on passe de l'un à l'autre ?

    Je ne vois pas tout rapatrier dans une seule Jframe car chaque lancement de jframe s'initialise à partir des variables de la précédente et surtout j'ai peur d'être perdu dans les gestions des Listener puisqu'il faudrait que je les gère en fonction du Jpanel affiché...

  2. #2
    Modérateur
    Avatar de sinok
    Profil pro
    Inscrit en
    août 2004
    Messages
    8 762
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : août 2004
    Messages : 8 762
    Points : 12 849
    Points
    12 849

    Par défaut

    Faire apparaître la nouvelle JFrame avant de fermer réellement la précédente?

    Mais plus généralement, n'utiliser qu'une seule JFrame dans laquels su stockes tes n JPanel que tu mets dans un CardLayout, de façon à ce qu'un seul JPanel soit visible à la fois et que tu puisses aisément switcher de l'un à l'autre.

    En général, dans une appli swing, la JFrame ne contient que très peu de code, les vues sont toutes codées dans des JPanels/JComponent. (sans même parler du pattern MVC dans lequel il est fortement recommandé de découpler le code de gestion/logique/transition inter écrans & cie du code des composants graphique
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  3. #3
    Invité de passage
    Inscrit en
    avril 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : avril 2012
    Messages : 10
    Points : 3
    Points
    3

    Par défaut

    Merci. Dans ce cas, par exemple ma première fenêtre a 10 boutons, la seconde une vingtaine.

    Cela veut-il dire que je dois dans ce cas gérer tous les boutons dans la jframe principale en les rendant visibles selon les besoins ? Ou y a t il une technique de prog spécifique pour éviter ce problème ?

    De même cela veut il dire que mes listener doivent être contenus dans les classes dérivées de jpanel au lieu de les lier a chacune des jframe actuellement ?

  4. #4
    Modérateur
    Avatar de sinok
    Profil pro
    Inscrit en
    août 2004
    Messages
    8 762
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : août 2004
    Messages : 8 762
    Points : 12 849
    Points
    12 849

    Par défaut

    Ne réfléchis plus en fenêtre mais en panels.

    Au lieu d'avoir des couples jframe->jpanel

    Tu as des couples jpanel->jpanel placés dans un cardlayout qui permet d'en afficher un seul à la fois (donc pas besoin de gérer la vsisbilité des boutons au cas par cas, tu demandes juste au layout d'afficher tel ou tel panel, et il te planquera automatiquement le précédent).

    Tuto sur le CardLayout: http://docs.oracle.com/javase/tutori...yout/card.html

    Donc, remplace tes JFrame par des JPanel et mets les tous dans une seule JFrame dont el layout sera un CardLayout
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •