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 :

Disposition des elements selon la resolution


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 269
    Par défaut Disposition des elements selon la resolution
    Bonjour,

    Je viens de parcourir plusieurs posts qui m'ont permis de pouvoir ajuster la Jframe principale et les JInternal frame selon la resolution de l'ecran.

    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
    /**
             * Methode de calcul de la résolution de l'écran 
             * 
             */
    	public Dimension dimEcran(){
     
    	    //	 On récupère l'écran par défaut :
    		GraphicsDevice ecran = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
    		// Note : En environnement multi-écran on pourrait utiliser getScreenDevices() pour choisir l'écran
     
    		// On récupère la configuration de l'écran
    		GraphicsConfiguration config = ecran.getDefaultConfiguration();
     
    		// On récupère les marges de l'écran,
    		Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(config);
     
    		// On récupère le mode d'affichage associé à l'écran :
    		DisplayMode mode = config.getDevice().getDisplayMode();
    		Dimension size = new Dimension( mode.getWidth(), mode.getHeight()- insets.bottom);
     
    		return size;
    	}
    Cependant etant donner que mes éléments (JScrollpane , Jtable etc ... sont placé avec la propriété setBounds je me retrouve avec des elements qui sont coupés ou complètement cachés lorsque j'utilise un autre ecran avec resolution plus petite)

    Il y a t il un moyen pour rendre dynamique ces valeurs ? ou le seul moyen est -il de mettre tout ca dans un ScrollPane.

    Actuellement les elements sont dans placés directement dans un JDesktopPane qui est dans un JContentPane

    - this
    ---JContentPane
    ------JDesktopPane
    --------- Les elements
    Mais peut etre que je ne dois pas mettre tous les elements a la brutos direct dans le JDesKtopPane mais plutot passer par un autre container ?

    Merci a tous

  2. #2
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    J'ai pas tout compris sur la disposition de tes éléments. L'utilisation d'un JDesktopPane est la base faite pour des JInternalFrame, et uniquement eux. Quand tu dis que tu places des JPanel et JScrollPane avec la méthode setBounds, tu les places où ? Dans tes JInternalFrame ou directement dans ton JDesktopPane ?

    La première idée qui me vient pour arreter tout problème "d'entrecoupage", c'est d'utiliser un Layout, qui est fait pour ça.

    Bonne chance.

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 269
    Par défaut
    UI en fait c'est ca, mon this est une Jinternal Frame et dedans j'ai unJDeskPane dans lequel j'ai effectivement tout mis a l'arrache , j'ai pas de layout.

    En effet j'ai connaissance des elements style GridLayout mais cependant je suis en train de regarder la palette de Visual Editor que j'utilise et aucun container avec "layout" n'est présent ...

  4. #4
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Citation Envoyé par tchoukapi
    UI en fait c'est ca, mon this est une Jinternal Frame et dedans j'ai unJDeskPane dans lequel j'ai effectivement tout mis a l'arrache , j'ai pas de layout.
    Euh, normalement on met les JInternalFrame dans le JDesktopPane, et pas l'inverse...

    Et utilises les layouts pour positionner tes composants, comme ça, ils s'organiseront "tout seul". Car si tu codes les positions en dur tu auras aussi des problèmes de positionnement lorsque tu redimensionneras ta fenêtre.

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 269
    Par défaut
    Bah c'est visual editor qui me mets ca dans cet ordre mais c'est peut etre implicite et il y a surment un JdestokPane derriere la JInternal frame dans ce cas.

    L'autre JdestokPane qui se trouve dans la JInternalFrame , j'ai du le rajouter pour mettre mes elements, mes du coup je n'en aurais plus besoin avec les layouts.

    cependant de quel container vous parlez pour les layouts ?

    Car la sur ma petite appli voila la config du JContentPane
    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
    /**
             * This method initializes jContentPane
             * 
             * @return javax.swing.JPanel
             */
    	private JPanel getJContentPane() {
    		if (jContentPane == null) {
    			jContentPane = new JPanel();
    			jContentPane.setLayout(new BorderLayout());
    			jContentPane.add(getJDesktopPane(), java.awt.BorderLayout.CENTER);
    			jContentPane.add(getJJToolBarAv(), java.awt.BorderLayout.NORTH);
     
    		}
    		return jContentPane;
    	}
    et dans le JDestokPane placer au centre tout mes element comboBox etc... sont placer avec des setBounds

  6. #6
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Ben au lieu du JDesktopPane, tu mets juste un JPanel avec un BorderLayout ou autre (GridBagLayout, FlowLayout suivant la répartition que tu veux obtenir).

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 21/05/2011, 11h34
  2. CSS : fichier include différent selon chaque resolution
    Par Sylvain245 dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 31/03/2005, 17h57
  3. [swing] disposition des éléments dans un GridLayout
    Par al85 dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 11/02/2005, 17h36
  4. Inserer des elements dans une map sans rangement ?
    Par Muetdhiver dans le forum C++
    Réponses: 3
    Dernier message: 07/09/2004, 11h09
  5. trier un tableau et compter des elements du tableau
    Par remi51 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 17/06/2002, 16h51

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