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 :

Ajuster un panel à la taille du label de son border


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
    Avril 2004
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2004
    Messages : 574
    Par défaut Ajuster un panel à la taille du label de son border
    Bonjour,


    J'utilise actuellement setBorder(BorderFactory.createTitledBorder("Mon titre de panel")); sur mon panel pour lui assigner une bordure avec le titre définie.

    Cependant une fois mes composants disposés grâce à mon layout, je m'aperçois que mon panel ne s'ajuste qu'à la taille de son contenu. Je voudrais savoir si c'est possible de l'ajuster à la taille du titre de la bordure.

    Pour illustrer, j'ai ceci :

    -Mon T..|
    |...0......|
    ________

    au lieu de ceci
    -Mon Titre de panel..|
    |............0.............|
    __________________

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Ce n'est pas possible de manière simple car les bordures ne spécifient qu'une marge mais pas de hauteur/largeur minimum...


    Une solution serait de calculer toi-même cette largeur minimum :
    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
    			private int borderMinimumWidth() {
    				// Si on a un TitledBorder :
    				if (getBorder() instanceof TitledBorder) {
    					TitledBorder titledBorder = (TitledBorder) getBorder();
     
    					// On récupère la police et le texte de la bordure :
    					Font font = titledBorder.getTitleFont();
    					String title = titledBorder.getTitle();
     
    					// On récupère le FontRenderContext associé au composant
    					FontRenderContext context = getFontMetrics(font).getFontRenderContext();
     
    					// On calcule la taille de la chaine selon ce contexte
    					Rectangle2D rect = font.getStringBounds(title, context);
     
    					return 16 + (int)rect.getWidth();
    				}
    				return 0;
    			}

    Ceci afin de redéfinir les méthodes getPreferedSize()/getMinimumSize()/getMaximumSize() (dont l'utilisation varie selon les layout) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    			@Override
    			public Dimension getPreferredSize() {
    				// On calcule la taille préféré par défaut :
    				Dimension prefSize = super.getPreferredSize();
    				// Si besoin, on aggrandi la largeur selon la taille du texte :
    				prefSize.width = Math.max(prefSize.width, borderMinimumWidth());
    				return prefSize;
    			}
    a++

Discussions similaires

  1. ajustement de la taille de label
    Par eno97 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/10/2012, 15h32
  2. [Débutant] Ajuster la taille du text d'un label en fonction de la taille du label
    Par Martipit dans le forum VB.NET
    Réponses: 8
    Dernier message: 17/04/2012, 10h46
  3. StackPanel à orientation horizontale : ajustement du contenu à la taille du panel
    Par seiryujay dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 23/01/2009, 19h03
  4. Problème de taille de label d'abscisse sur un graphique
    Par Chrysomallus dans le forum MATLAB
    Réponses: 5
    Dernier message: 25/04/2007, 13h45
  5. Ajustement automatique de la taille de la police dans un TLabel
    Par Poisson Rouge dans le forum Composants VCL
    Réponses: 3
    Dernier message: 05/09/2003, 15h13

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