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 :

Redimenssionnement proportionel d'une fenetre


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 53
    Par défaut Redimenssionnement proportionel d'une fenetre
    Bonjour,

    Est-il possible d'autoriser uniquement un redimensionnement proportionnel des fenêtre, c'est-à-dire : si ma fenêtre est de taille 1024*768, que hauteur et longueur gardent les mêmes proportions (comme on le ferait pour une image) ?

    Merci d'avance pour vos réponses !

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    429
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 429
    Par défaut
    Bonjour,

    Une piste ci-dessous, en réagissant au redimensionnement provoqué par l'utilisateur.

    Nicolas

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    // appeler le fichier Exemple098_JFrameAuxProportionsFixes.java
     
    // par Nicolas_75, 10 juillet 2007
    // pour http://www.developpez.net/forums/showthread.php?t=374961
     
    import java.awt.event.*;
    import javax.swing.JFrame;
     
    public class Exemple098_JFrameAuxProportionsFixes extends JFrame {
     
        public static final double INITIAL_WIDTH = 1024.0/1.5;
        public static final double INITIAL_HEIGHT = 768.0/1.5;
     
        // constructeur :
        public Exemple098_JFrameAuxProportionsFixes() {
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.setSize((int) INITIAL_WIDTH, (int) INITIAL_HEIGHT);
            this.setLocationRelativeTo(null);
            this.addComponentListener(new ComponentAdapter() {
                public void componentResized(ComponentEvent e) {
                    int currentWidth = getWidth();
                    int currentHeight = getHeight();
                    // si on garde la hauteur choisie par l'utilisateur,
                    // la largeur devrait devenir :
                    int objectiveWidth = (int) (currentHeight*INITIAL_WIDTH/INITIAL_HEIGHT);
                    // si on garde la largeur choisie par l'utilisateur,
                    // la hauteur devrait devenir :
                    int objectiveHeight = (int) (currentWidth*INITIAL_HEIGHT/INITIAL_WIDTH);
                    // entre "changer la hauteur", et "changer la largeur",
                    // on garde la solution qui n'augmente aucune dimension :
                    if (objectiveWidth < currentWidth) {
                        setSize(objectiveWidth, currentHeight);
                    } else {
                        setSize(currentWidth, objectiveHeight);
                    }
                }
            });
        }
     
        // "main" de démonstration :
        public static void main(String[] args) {
            new Exemple098_JFrameAuxProportionsFixes().setVisible(true);
        }
    }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 53
    Par défaut
    Merci pour ce petit exemple !
    J'essaie ca dès demain et je vous tiens au courant !

    Thomas

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 53
    Par défaut
    Désolé de répondre aussi tard mais j'ai eu pas mal de boulot et je n'avais pas eu le temps d'essayer ce petit bout de code.
    ça marche nikel mais je trouve regrettable que cette fonction ne soit pas implantée dans le jdk ... car l'inconvénient de ce code, c'est que lorsque l'on agrandit la fenêtre, on pense avoir une certaine taille et après le calcul, on se retrouve avec une autre !

    En tous cas merci beaucoup.
    Thomas

Discussions similaires

  1. [VB6] [Système] Récupérer le contenu d'une fenêtre DOS
    Par Nounours666 dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 18/11/2004, 16h38
  2. [MDI] Ouvrir immédiatement une fenetre fille
    Par phil56 dans le forum C++Builder
    Réponses: 8
    Dernier message: 12/03/2003, 14h27
  3. [VB6] Dimension d'une fenetre extérieure
    Par Ingham dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 22/01/2003, 16h52
  4. Aide sur une fenetre
    Par Ray-j dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 29/11/2002, 08h51
  5. gérer les jpg dans une fenetre directdraw???
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 14/06/2002, 13h39

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