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 :

probleme avec le layout null


Sujet :

AWT/Swing Java

  1. #1
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Points : 955
    Points
    955
    Par défaut probleme avec le layout null
    bonjour;

    pour ma boite de dialogue je l'ai decompose en 3 partie par border layout (north,center et south) alors north et south sont des panels de type flowlayout et center j,ai mis un layout de type null car je veut positionner et dimmensionner mes composants ; jusque la tous vas bien mais lorsque j'appelle cette boite de dialogue lors de l'ouverture seulement les 2 partie de type flawlayout s'affiche mais la partie dont le type de layout est null elle ne s'affiche pas et je doit redimensionner ma boite de dialogue a la main pour l'afficher;
    j'ai penser a setSize de toute la boite de dialogue mais toujour le meme probleme.

  2. #2
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Salut,

    Un bon conseil : éviter l'utilisation du layout null.
    Ca doit faire le 5e poste de personnes ayant des problèmes avec ce layout depuis 2 ou 3 semaines.

  3. #3
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    Perso je ne suis pas tout à fait d'accord, même si ultra statique, il permet de faire les interfaces les plus précises, notamment pour les composants qui n'ont pas besoin d'être dynamiques. Layout null ne signifie pas Layout null sur toute l'appli d'ailleurs.

  4. #4
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Le problème avec le null layout c'est qu'il est souvent utilisé par les débutants qui pensent que c'est plus facile (il faut dire que comprendre le fonctionnement des layouts n'est pas aisé ça c'est clair).
    C'est un layout qui devrait être utilisé avec parcimonie uniquement dans des cas très spécifiques. On devrait pouvoir s'en passer dans 99% des cas.
    Non seulement il génère facilement des comportements hazardeux, mais le code devient difficilement maintenable, peu évolutif, etc.

  5. #5
    Membre éclairé
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Points : 704
    Points
    704
    Par défaut
    Citation Envoyé par remika
    Perso je ne suis pas tout à fait d'accord, même si ultra statique, il permet de faire les interfaces les plus précises, notamment pour les composants qui n'ont pas besoin d'être dynamiques. Layout null ne signifie pas Layout null sur toute l'appli d'ailleurs.
    Fais un test remika sinon tu pourra jamais comprendre.
    Cre une interface Swing avec 3 JLabel dans lequel tu met du texte, 3 boutons et quelques composant comme tu veux.
    Tu ajoute le tout dans un container qui a un layout null.

    puis change de l&f ou utilise ta fenetre sur une autre plateforme (linux, mac osX etc) tu verra que le layout null est pas portable.

  6. #6
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Points : 955
    Points
    955
    Par défaut
    alors comment je fait pour afficher la partie de layout null.
    parceque elle ne s'affiche pas lors de l'execution

  7. #7
    Membre averti Avatar de let_me_in
    Inscrit en
    Mai 2005
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 441
    Points : 437
    Points
    437
    Par défaut
    voici un petit bout de code (fais avec eclipse mais y a pas de differences) qui marche compare le avec ton code (ou bien poste ton code ici pour qu'on puisse le voir) :
    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    import java.awt.*;
    import javax.swing.*;
     
     
    public class Fenetre extends JFrame {
     
    	private JPanel jContentPane = null;
    	private JPanel jPanel1 = null;
    	private JPanel jPanel = null;
    	private JPanel jPanel2 = null;
    	private JButton jButton = null;
    	private JButton jButton2 = null;
    	private JButton jButton4 = null;
     
    	/**
             * This is the default constructor
             */
    	public Fenetre() {
    		super();
    		initialize();
    	}
     
    	/**
             * This method initializes this
             * 
             * @return void
             */
    	private void initialize() {
    		this.setSize(300, 200);
    		this.setContentPane(getJContentPane());
    		this.setTitle("JFrame");
    		this.setVisible(true);
    	}
     
    	/**
             * This method initializes jContentPane
             * 
             * @return javax.swing.JPanel
             */
    	private JPanel getJContentPane() {
    		if (jContentPane == null) {
    			jContentPane = new JPanel();
    			jContentPane.setLayout(new BorderLayout());
    			jContentPane.add(getJPanel1(), java.awt.BorderLayout.SOUTH);
    			jContentPane.add(getJPanel(), java.awt.BorderLayout.NORTH);
    			jContentPane.add(getJPanel2(), java.awt.BorderLayout.CENTER);
    		}
    		return jContentPane;
    	}
     
    	/**
             * This method initializes jPanel1      
             *      
             * @return javax.swing.JPanel   
             */
    	private JPanel getJPanel1() {
    		if (jPanel1 == null) {
    			jPanel1 = new JPanel();
    			jPanel1.setLayout(new FlowLayout());
    			jPanel1.add(getJButton(), null);
    		}
    		return jPanel1;
    	}
     
    	/**
             * This method initializes jPanel       
             *      
             * @return javax.swing.JPanel   
             */
    	private JPanel getJPanel() {
    		if (jPanel == null) {
    			jPanel = new JPanel();
    			jPanel.setLayout(new FlowLayout());
    			jPanel.add(getJButton2(), null);
    		}
    		return jPanel;
    	}
     
    	/**
             * This method initializes jPanel2      
             *      
             * @return javax.swing.JPanel   
             */
    	private JPanel getJPanel2() {
    		if (jPanel2 == null) {
    			jPanel2 = new JPanel();
    			jPanel2.setLayout(null);
    			jPanel2.add(getJButton4(), null);
    		}
    		return jPanel2;
    	}
     
    	/**
             * This method initializes jButton      
             *      
             * @return javax.swing.JButton  
             */
    	private JButton getJButton() {
    		if (jButton == null) {
    			jButton = new JButton("test");
    		}
    		return jButton;
    	}
     
    	/**
             * This method initializes jButton2     
             *      
             * @return javax.swing.JButton  
             */
    	private JButton getJButton2() {
    		if (jButton2 == null) {
    			jButton2 = new JButton("test");
    		}
    		return jButton2;
    	}
     
    	/**
             * This method initializes jButton4     
             *      
             * @return javax.swing.JButton  
             */
    	private JButton getJButton4() {
    		if (jButton4 == null) {
    			jButton4 = new JButton("test");
    			jButton4.setBounds(new java.awt.Rectangle(45,35,66,25));
    		}
    		return jButton4;
    	}
     
    }
    je vais supposer que tu sais faire le main

    a+

  8. #8
    Nouveau membre du Club
    Profil pro
    Developpeur
    Inscrit en
    Décembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Décembre 2006
    Messages : 18
    Points : 25
    Points
    25
    Par défaut
    juste comme ca au passage, tu as pensé a utiliser
    setPreferedSize() pour le panel qui a un layout null?

Discussions similaires

  1. probleme avec un champ null dans une requête sql
    Par kroma23 dans le forum Bases de données
    Réponses: 6
    Dernier message: 20/03/2014, 16h09
  2. [AC-2010] probleme avec une valeur null sur une date
    Par kynder surprise dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/05/2012, 18h28
  3. Probleme avec le layout gridbaglayout
    Par Zoners dans le forum Agents de placement/Fenêtres
    Réponses: 0
    Dernier message: 06/05/2010, 18h56
  4. Probleme avec JFileChooser, file NULL
    Par mugwump dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 08/08/2007, 16h06
  5. Probleme avec un string null
    Par jayjay.f dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 04/04/2007, 22h39

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