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 :

[SWING] Pb de dimensionnement


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 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 47
    Par défaut [SWING] Pb de dimensionnement
    Bonjour à tous,

    j'ai un petit probleme lors de la creation de mon interface graphique.

    En fait, je créé des JTextField, en leur donnant une taille specifique, mais lors de l'affichage graphique, ils ne respectent pas les dimensions, et remplissent toute la hauteur de ma fenetre. Il en est de meme pour mon bouton.

    Voici le code de creation des JTextField et du JButton:

    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
    public class boutonModification extends Applet{
     
    	private JMenuBar barreboutons = new JMenuBar();
    	private JLabel vitesseVoiture = new JLabel("Vitesse de la voiture: (en km/h) ");
    	private JLabel vitesseCamion = new JLabel("Vitesse du camion: (en km/h) ");
    	private TextField valeurVitesseVoiture = new TextField();
    	private TextField valeurVitesseCamion = new TextField();
    	private JButton valider = new JButton("Valider");
     
     
    	public boutonModification(){
    		barreboutons = new JMenuBar();
    		barreboutons.setLayout(new GridLayout(0,2,0,0));
    	}
     
    public JMenuBar barreModification(){
     
    		barreboutons.add(vitesseVoiture);
    		valeurVitesseVoiture.setSize(3,10);
    		barreboutons.add(valeurVitesseVoiture);
     
    		barreboutons.add(vitesseCamion);
    		valeurVitesseCamion.setSize(3,10);
    		barreboutons.add(valeurVitesseCamion);
     
    		valider.setSize(10,10);
    		barreboutons.add(valider);
     
    		return barreboutons;
    	}
     
    }
    et voici le code d'affichage de mon interface, qui elle respecte les dimensions que je lui donne:

    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
    public class GUI {
     
    	private static boutonModification barreDeMenu=null;
     
    	public static void main(String[] args){
    		/**
                     * creation de l'interface general
                     */
     
    		JFrame fenetre = new JFrame("Interface Simulation");
    		fenetre.setLayout(new BorderLayout());
    		fenetre.setSize(800,600);
     
    		JPanel fenetresimulation = new JPanel();
    		fenetresimulation.setLayout(new BorderLayout());
    		fenetresimulation.setBackground(Color.white);
    		fenetresimulation.setSize(500, 600);
     
    		JPanel fenetreboutons = new JPanel();
    		fenetreboutons.setLayout(new BorderLayout());
    		fenetreboutons.setBackground(Color.black);
    		fenetreboutons.setSize(300,600);
     
     
    		barreDeMenu = new boutonModification();
    		JMenuBar barre = barreDeMenu.barreModification();
    		fenetreboutons.add(barre);
     
    		fenetre.add(fenetresimulation, BorderLayout.CENTER);
    		fenetre.add(fenetreboutons, BorderLayout.EAST);
    		fenetre.setVisible(true);
    	}
     
    }
    Images attachées Images attachées  

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    En fait dans ton cas le setSize n'a aucnue influence.

    La taille des composants est fonction du layout et des contraintes qui lui sont appliquées.

    Dans ton cas tu utilises un GridLayout qui a est constitué de cases toutes égales en hauteur et en largeur. Le composant placé dans une case en remplira tout l'espace.

    Si tu veux quelquechose de plus fin dirige toi vers le GridBagLayout

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 47
    Par défaut
    oki, merci,

    je vais essayer le GridBagLayout...

    Je donnerais des news apres...

  4. #4
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    au pire si tu veux un truc vraiment perso mais fixe utilise un layout null

  5. #5
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Très mauvais conseille car le NullLayout est très limité, ne gère aucun redimensionnement, ni les baselines ou quoi que ce soit d'auter. Si tu veux que ton appli ait tant soit peu un style pro il te faudra utiliser et maîtriser les Layout comme le GridBagLayout, le BorderLayout, le FlowLayout et le BoxLayout. Ou alors utiliser des layouts plus avancés et souples comme le FormLayout JGoodies, le TableLayout, le SpringLayout ou encore le GroupLayout matisse (mais celui ci ne peut être manipulé que visuellement, pas dans le code)

  6. #6
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    A ton avis pourquoi j'ai précisé FIXE ?

    D'ailleurs je travaille sur des applis très "stylées pro" utilisées par des grosses boîtes où le Layout est null... (je l'ai pas décidé mais c'est ainsi).

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

Discussions similaires

  1. [Swing]JTable- Dimensionner les colonnes
    Par loutfi dans le forum Composants
    Réponses: 12
    Dernier message: 01/07/2011, 08h50
  2. [SWING] Dimensionner des JInternalFrame
    Par rprom1 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 23/03/2006, 14h50
  3. Réponses: 3
    Dernier message: 06/03/2006, 18h08
  4. Réponses: 3
    Dernier message: 29/08/2005, 15h33
  5. Re-dimensionnement automatique de composants
    Par ludo_7 dans le forum C++Builder
    Réponses: 10
    Dernier message: 16/05/2002, 16h35

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