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

Composants Java Discussion :

JTable carrée


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Par défaut JTable carrée
    bonjour j'ai une JTable qui a le meme nombre de lignes et de colonnes et j'aimerais qu'elle s'affiche carré.

    est ce sur la Jtable que je doit jouer ou sur la mise en page dans le panel (elle est seule dans son panel)

    :

  2. #2
    Membre expérimenté Avatar de Lethal
    Profil pro
    Développeur Java
    Inscrit en
    Février 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2006
    Messages : 194
    Par défaut
    ca dépend.

    Soit ton jpanel doit être carré et elle prendra toute la place.
    Tu dois alors configurer le layout du conteneur du panel pour qu'il gère des components de tailles variables et tu dois seter la taille du jPanel.

    Soit ton jpanel n'est pas carré et la jtable doit l'être.
    C'est le layout du panel qui doit pouvoir gérer des components de tailles variables et tu dois seter la taille de la jTable.

    Personnelement je choisirais la 2ème solution.
    J'utiliserais un Layout personnalisé pour le jpanel.

    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
     
    /*
     * MyLayout.java
     *
     * Created on 4 mars 2006, 15:48
     *
     * To change this template, choose Tools | Template Manager
     * and open the template in the editor.
     */
     
    package mylayout;
     
    import java.awt.Component;
    import java.awt.Container;
    import java.awt.Dimension;
    import java.awt.LayoutManager;
     
    /**
     *
     * @author Lethal
     */
     
    //La classe doit implémenter layout manager
    public class MyLayoutCarre implements LayoutManager{
     
        Dimension dim;
        Component[] composants;
        double tailleCote,w,h;
        int nbr;
     
        /** Creates a new instance of MyLayout */
        public MyLayoutCarre() 
        {
        }
     
        public void addLayoutComponent(String name, Component comp) 
        {
     
        }
     
        public void removeLayoutComponent(Component comp) 
        {
     
        }
     
        public Dimension preferredLayoutSize(Container parent) 
        {
            return parent.getSize();
        }
     
        public Dimension minimumLayoutSize(Container parent)
        {
            return parent.getSize();
        }
     
        // on ne redéfinit que la méthode qui est appelée chaque fois qu'on doit repositionner les composants
        public void layoutContainer(Container parent)
        {
            // on récupère la liste des composants
            composants = parent.getComponents();
     
            // on récupère la taille du panel
            dim = parent.getSize();
     
            // on récupère le nombre de composants
            nbr = composants.length;
     
            // on prend la plus petite taille
            h = dim.getHeight();
            w = dim.getWidth();
     
            if (w > h)   tailleCote = h;
            else          tailleCote = w;
     
            // si on a au moins un compostant on affiche le composant pour qu'il ai un coté de la taille du plus petit coté du panel qui le contient et on le centre
            if(nbr >=1)
            {
                    composants[0].setBounds(  (int)(w-tailleCote)/2  ,  (int)(h-tailleCote)/2  ,  (int)tailleCote  ,  (int)tailleCote); 
                    System.out.println("bounds(" + (int)(w-tailleCote)/2 + "," + (int)(w-tailleCote)/2 +"," + (int)tailleCote + "," + (int)tailleCote + ")");
                    if(nbr > 1)     System.out.println("Je n'affiche qu'1 composant");
            }  
            else
            {
                System.out.println("Il me faut au moins 1 compostants");
            }
        }   
    }
    Il suffit donc d'instancier un panel d'ajouter un composant (ta jtable) et de faire un setLayout(new MyLayoutCarre()) sur le panel

  3. #3
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Par défaut
    merci ^^ de mon coté j'ai trouvée un solution mais elle n'est pas parfaite.

    j'ai utiliser set preferred size comme ma matrice est seul sur son panel avec le bon setRowHeight c presque parfais

    enfin si ca marche pas je prendrais ta solution ^^.

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

Discussions similaires

  1. [SWING]jTable + Focus
    Par chady dans le forum Composants
    Réponses: 5
    Dernier message: 27/02/2003, 14h51
  2. Tracer un carré de X cm
    Par mdel dans le forum Composants VCL
    Réponses: 6
    Dernier message: 06/01/2003, 16h17
  3. Racine carrée
    Par SteelBox dans le forum Mathématiques
    Réponses: 5
    Dernier message: 23/11/2002, 17h15
  4. JBuilder7 & JTable Colonne alignement
    Par Tonton Luc dans le forum JBuilder
    Réponses: 5
    Dernier message: 06/11/2002, 17h32
  5. Réponses: 9
    Dernier message: 12/08/2002, 07h38

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