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

Agents de placement/Fenêtres Java Discussion :

JFrame en fonction de son écran


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations forums :
    Inscription : Mars 2010
    Messages : 2
    Par défaut JFrame en fonction de son écran
    Salut,
    Ma préoccupation est celle-ci:
    j'ai crée une application qui marche sans problème.
    Mais le hic est que si j'utilise cette application avec un laptop avec un petit écran, une partie de la fenêtre est caché puisque la fenêtre est plus grand que l'écran. Es-ce que quelqu'un peut avoir une solution?

  2. #2
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Il faut utiliser proprement des layout pour avoir un agencement propre des composants en fonction de la taille de la fenêtre.

    Ensuite tu peux dimensionner la fenêtre soit via les composants qui la composent ( et l'eau ça mouille) en utilisant la méthode "pack()" ; soit par rapport à la taille de l'écran via un Toolkit
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations forums :
    Inscription : Mars 2010
    Messages : 2
    Par défaut JFrame en fonction de son écran
    Ok, suis d'accord mais mes interfaces ont été crée en utilisant netbeans, il utilise un layout particulier, là qu'est-ce que je fais ?

  4. #4
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Mets la main dans le cambouis ou passe le code à un mécano. A moment ou à un autre il faut mouiller la chemise !
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  5. #5
    Membre très actif
    Avatar de william44290
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2009
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 400
    Par défaut
    salut, j'utilise quelque méthodes pour resizer mes vues en fonction de l'écran :

    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
        public static Dimension getScreenSize(){
            return java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        }
        public static Insets getScreenInsets(){
            return java.awt.Toolkit.getDefaultToolkit().getScreenInsets(GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration());
        }
        public static void setRelativeLocation(Container cont,Point p,Dimension dim){
            Insets insets = getScreenInsets(); 
            Dimension tailleEcran = getScreenSize(); 
            tailleEcran.width=tailleEcran.width-insets.right;
            tailleEcran.height=tailleEcran.height-insets.bottom;
            if (p.x+p.y==0){ // centrer à l'ecran le popup
                p.x=(tailleEcran.width-dim.width)/2;
                p.y=(tailleEcran.height-dim.height)/2;
            }
            if (p.x+dim.width>tailleEcran.width){ // perte sur la largeur
                p.x=(tailleEcran.width-dim.width); // recalcule x  pour coller à droite
            }
            if (p.y+dim.height>tailleEcran.height){ // perte en hauteur
                p.y=(tailleEcran.height-dim.height); // recalcule y  pour coller en bas
            }
            cont.setLocation(p.x,p.y);
            insets=null;
            tailleEcran=null;
        }
    si cela peut t'aider.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 7
    Par défaut
    Et si par hasard tu mets au lancement de ton application que ta fenêtre doit être maximale, est ce que cela redimensionne tout correctement ?

  7. #7
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 47
    Par défaut
    Citation Envoyé par bobnoblesse Voir le message
    Ok, suis d'accord mais mes interfaces ont été crée en utilisant netbeans, il utilise un layout particulier, là qu'est-ce que je fais ?
    Netbeans utilise par défaut le GroupLayout, qui est une monstruosité à programmer à la main, mais qui permet dans le cadre de l'éditeur de netbeans, une relative liberté de mouvement.

    Eventuellement, si tu ne t'en sort pas avec le GroupLayout, ou que tu n'as pas envie de tout redéfinir à la main, tu peux changer le layout employé par l'éditeur de netbeans avec l'un des autres existants (GridBagLayout, GridLayout, etc...).


    Pour adapter la fenêtre à l'écran, il va falloir jouer avec les tailles de tes fenêtres, et c'est passablement incompatible avec le GroupLayout

  8. #8
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    J'utilise le GroupLayout manuellement et je n'ai aucun soucis lors de ma redimensionnement ...
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  9. #9
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 47
    Par défaut
    Respect alors ^^ Mais je suppose que c'est une question d'entrainement.
    Ce n'est que mon avis, mais quand on programme à la main je pense qu'il vaut mieux éviter le GroupLayout qui n'a pas été prévu pour ça, d'autres layout avec des rendus tout aussi bien existent et sont plus simples (relativement ) d'utilisation.

  10. #10
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Je trouve le group layout très simple d'utilisation et évite l'enchevêtrement de conteneur vide de sens avec un alignement approximatif (avant j'utilisais des Box à tout va).
    Cependant ça a ses limites et pour un truc bien fin je lui préfère le SpringLayout mais il faut s'habituer à faire de l'arithmétique Spring.

    Ensuite le seul layout capable de faire un truc un peu souple c'est le GridBagLayout. Quand j'ai commencé en Swing, je trouvais ça génial pour le rendu mais pénible à utiliser. Puis j'ai commencé à faire des IHMs un peu poussé et la composition de layout avec un gridbaglayout fait n'importe quoi.
    Exemple :
    ______________________
    |______|_______________|
    |______________|_______|
    |______|_______________|
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/01/2006, 18h19
  2. Affichage de mon site en fonction de l'écran
    Par mobeida dans le forum Webdesign & Ergonomie
    Réponses: 1
    Dernier message: 07/08/2005, 18h08
  3. Comment redimensionner un TEdit en fonction de son contenu ?
    Par Tempotpo dans le forum Composants VCL
    Réponses: 10
    Dernier message: 25/07/2005, 21h52
  4. Réponses: 14
    Dernier message: 02/03/2005, 18h15
  5. appeler une fonction connaissant son nom (en string)
    Par Guigui_ dans le forum Général Python
    Réponses: 1
    Dernier message: 20/07/2004, 00h46

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