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 de mise en Forme


Sujet :

AWT/Swing Java

Vue hybride

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 351
    Par défaut Probleme de mise en Forme
    Debutant en programmation. Je fais une application avec une interface graphique un "peu évolué"(enfin pour moi).

    J'ai une JFrame principal avec une barre de menu , son gestionnaire est un CardLayout pour me permetre d'afficher mes différents panneaux a la demande
    (quand l'utilisateur clic sur tel option du menu).
    Bon c'est peut etre pas la meilleur solution mais c'est que j'ai choisi.

    Donc j'ai différent panel que le CardLayout se charge d'afficher , chaque JPanel prend tjrs tout l'espace du container de la frame.
    J'ai utilisé ca pour le CardLayout(0,0) comme constructeur.
    Chaque panel a son propre affichage.

    Un de mes Panel me pose Probleme. Sur ce panel je veux afficher une JTable
    qui est dans un JScrollPane , 2 sous JPanel et unJTextArea.
    Les différents layout me donnant pas satisfaction j'utilse donc le sois-disant plus compliqué GridBagLayout.
    Mais le resultat est vraiment decevant.....

    Voici le code:
    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
     
    class PanProjet extends JPanel 
    {
     
        private Fenetre fenetre;
        private JTable tableau;
        private final String [] nomsColonnes={"Code","Nom","Dur\u00e9e","Predecesseurs","Date debut","Date fin"};
        private Object [][] cellules= new Object [30][6];
        private JTextArea description;
        private JPanel titre;
        private JPanel utilisateur;
     
        public PanProjet(Fenetre fenetre)                                      
        {                                       
            //this.fenetre = fenetre;
     
            /********Layout diposition des élements graphique***/
     
            GridBagLayout grille = new GridBagLayout(); // place les éléments selon une grille imaginaire(la mienne 3C-4L) 
            GridBagConstraints contraintes = new GridBagConstraints(); //contraintes pour le placement des objets
            setLayout(grille);
     
     
            titre = new JPanel();
            titre.setBackground(Color.blue);
            contraintes.gridwidth = 2; // nombre de case en largeur
            contraintes.gridheight = 1; // nombre de case en hauteur
            contraintes.gridx = 0; // emplacement de depart du composant en x (par rapport au coin sup gauche)
            contraintes.gridy = 0; // idem pour l'axe des ordonnés
            contraintes.fill = GridBagConstraints.BOTH;
            grille.setConstraints(titre,contraintes); // on donne les infos au layout
            add(titre);
     
            tableau = new JTable(cellules,nomsColonnes);
            JScrollPane aScrollPane = new JScrollPane(tableau);
            aScrollPane.setHorizontalScrollBar(new JScrollBar());
            contraintes.gridwidth = 2;
            contraintes.gridheight = 2;
            contraintes.gridx = 0;
            contraintes.gridy = 1;
            contraintes.fill = GridBagConstraints.NONE;
            grille.setConstraints(aScrollPane,contraintes);
            add(aScrollPane);
     
            description = new JTextArea();
            description.setBackground(Color.cyan);
            contraintes.gridwidth = 2;
            contraintes.gridheight = 1;
            contraintes.gridx = 0;
            contraintes.gridy = 3;
            contraintes.fill = GridBagConstraints.BOTH;
            grille.setConstraints(description,contraintes);
            add(description);
     
            utilisateur = new JPanel();
            utilisateur.setBackground(Color.green);
            contraintes.gridwidth = 1;
            contraintes.gridheight = 4;
            contraintes.gridx = 2;
            contraintes.gridy = 0;
            contraintes.fill = GridBagConstraints.BOTH;
            grille.setConstraints(utilisateur,contraintes);
            add(utilisateur);
     
    }
    Voila ce que j'obtient:
    Nom : appli.JPG
Affichages : 103
Taille : 49,8 Ko


    Mais moi je voudrais cette disposition:
    Nom : dispo.JPG
Affichages : 90
Taille : 12,5 Ko

    bleu = 1er Sous JPanel
    vert = 2em sous JPanel
    blanc = JScrollPane(JTable)
    cyan = JTextArea

    Et donc je vois pas ou mon code pose probleme , peutetre qu'il faut definir des tailles pour les composants mais dans ce cas la qu'elle est l'utilité du GridBagLayout.

    Donc la je patoge completement!

    Un autre truc que je n'arrive pas a faire sur le JScrollPane je voudrais une SCrollBar Horizontal et Une Vertical. Et que mon tableau n'affiche pas forcement a chaque fois toutes les colonnes enfin si mais que le JScrollPane les affiches pas toutes, que l'utilisateur fasse defilé avec la barre horizontal si pas assez d'espace

    je sais pas si je me fais bien comprendre

    Merci d'avance

  2. #2
    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
    Je te conseille de regarder ce post...
    Calogerogigante y expose une méthode pour utiliser le GridBagLayout qui a l'air très efficace...
    Ce layout étant sinon relativement complexe à utiliser (au départ tout du moins...)

  3. #3
    Membre éclairé Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Par défaut
    Trés trés efficace, d'ailleur je remercie encore Calo de me l'avoir bien expliqué

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 351
    Par défaut
    Merci pour le lien

    Bon je n'avais pas mis les poids sur les contraintes donc c pour ca que ca ne marchait pas completement. Bon je pourrais faire une boucle quand meme, honte a moi ...

    Mais le probleme est tjrs la , ca marche parfaitement avec des JPanels , ca marche aussi avec le JScrollPane en lui passant un JPanel.

    Mais sitot que je passe un JTable, le tableau redefinis les dimensions du JScrollPane.

    Donc le probleme viens du Tableau.

Discussions similaires

  1. Probleme de mise en forme avec DIV et CSS
    Par freesurfer dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 09/02/2007, 15h26
  2. Petit problème de mise en forme
    Par simplyme dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 30/11/2006, 19h36
  3. Probleme de Mise en Forme (layout)
    Par Elendhil dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 10/06/2006, 13h29
  4. probleme : tableau & mise en forme
    Par grumly22 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 03/04/2006, 22h53
  5. [Librairies] fichier cvs; problème de mise en forme
    Par illegalsene dans le forum CVS
    Réponses: 3
    Dernier message: 19/10/2005, 15h35

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