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 :

Question sur le resize


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 115
    Par défaut Question sur le resize
    Bonjour à tous,

    je développe une application Swing pour un client. C'est une application qui ne peut avoir que 2 tailles précise lors de son éxecution:

    Soit défini au démarrage avec une taille fixe
    Soit en mode maximisé.

    Donc je suis contraint de laisser la possibilité de maximiser la fenêtre et de ne pas permettre de resizer avec la souris par exemple...

    Si quelqu'un a une idée.
    le setResizable(false) sur JFrame désactive les 2 manières.


    Voilà
    bien à vous,
    Olivier Antoine

  2. #2
    Membre éprouvé
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Par défaut
    Salut!

    Tu peux utiliser un écouteur de composant, afin d'empêcher le redimensionnement à une autre taille que celle que tu as fixée ou à l'état maximisé.

    Pour cela, il faut définir une classe implémentant l'interface ComponentListener et ajouter une instance de cette classe en tant qu'écouteur de composant sur ta fenêtre (méthode
    addComponentListener()).

    A noter que pour éviter de devoir implémenter toutes les méthodes de l'interface, on peut aussi utiliser la classe adapteur correspondante qui est ComponenentAdapteur. C'est une classe abstraite fournisssant une implémentation vide à toutes les méthodes de l'interface ComponentListener, ce qui permet en en héritant de n'avoir à définir que la méthode qui nous intéresse (ici componentResized()).

    Le code ressemblera à ça :

    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
     
     
    public class MyJFrame extends JFrame{
     
         //la hauteur et la largeur de la fenêtre que l'on veut avoir.
         public static final int HAUTEUR_FENETRE = 300;
         public static final int LARGEUR_FENETRE = 300;
     
        //autres champs d'instance
     
        //constructeur
        public MyJFrame(){
     
     
            //initialisation des champs d'instance
     
            //listener sur la taille de la fenêtre permettant d'empêcher la redimension de 
            //celle-ci autre qu'à la taille fixée ou en maximisé.
            addComponenentListener(new ComponentAdapter() {
    		public void componentResized(ComponentEvent e) {
     
                              //si on est pas dans l'état maximisé
                           if(MyJFrame.this.getExtendedState()!=JFrame.MAXIMIZED_BOTH){
     
                                    //récupèration de la taille courante de la fenêtre
    				Dimension dim = MyJFrame.this.getSize();
     
    				//vérification et redimension à la taille voulue si nécessaire
                                    if (dim.height != HAUTEUR_FENETRE|| dim.width != LARGEUR_FENETRE) {
    					MyJFrame.this.setSize(HAUTEUR_FENETRE,LARGEUR_FENETRE);
    				}
                            }
    		}
             });
     
     
        }
     
     
    //autres méthodes
     
    }
    A noter que dans cette exemple j'ai utilisé une classe interne anonyme. Y'a moyen de définir cela dans une classe séparée si tu préfères.


    Si y'a une truc pas clair, n'hésites pas à redemander.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 115
    Par défaut
    Merci beaucoup pour ta réponse claire.

    c'est en effet ce que je recherchais.

    Entre temps, j'avais également trouvé une autre solution mais qui correspondait moins à mes contraintes.


    Merci à toi,

    Olivier Antoine

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

Discussions similaires

  1. [debutant] Questions sur 1 futur projet
    Par cyrull22 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 28/04/2003, 21h49
  2. Quelques questions sur le TWebBrowser...
    Par CorO dans le forum Web & réseau
    Réponses: 3
    Dernier message: 17/01/2003, 21h23
  3. Question sur les handles et les couleurs...
    Par MrDuChnok dans le forum C++Builder
    Réponses: 7
    Dernier message: 29/10/2002, 08h45
  4. Réponses: 2
    Dernier message: 11/08/2002, 21h27
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11

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