L'alignement vertical de JLabel ne fonctionne pas comme prévu
Font font = Font("Arial", Font.BOLD, 35);
JLabel label = new JLabel("57");
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.LINE_AXIS));
panel.add(label);
Cela crée un JLabel avec un espace supplémentaire au-dessus et au-dessous. J'ai essayé setVerticalAlignment(SwingConstants.TOP)
mais il ne fonctionne pas. Encore une fois, je ne veux pas aligner JLabel de haut, mais aussi le texte à l'intérieur JLabel devrait être aligné en haut.
ici est de savoir comment mon label ressemble
source d'informationauteur arpanoid
Vous devez vous connecter pour publier un commentaire.
Le texte de votre étiquette est en fait alignés vers le haut déjà. Même si vous réglez tous les trois:
vous n'auriez toujours trouver l'écart.
Le problème est lié à la police de la métrique. La police laisse de la place pour les signes diacritiques, et tandis que l'anglais nombres et de lettres ne contiennent pas de signes diacritiques sur les lettres majuscules, Arial certainement contient une largeur de caractères internationaux, y compris celles de plus grand que d'une lettre majuscule, par exemple, les accents (AOU) ou de caractères contenant le portugais signes diacritiques (ÁÂÃ).
Si vous voulez un moyen rapide, facile solution qui est un hack, ce n'est pas de l'échelle à travers les polices et les plates-formes, vous pouvez utiliser une valeur négative à une frontière pour compenser les mesures de police.
Si vous voulez le fixer "droit" vous devriez regarder dans l'apprentissage sur le FontMetricscar il a de nombreuses fonctions qui pourraient être utiles pour le calcul de la hauteur et de l'emplacement du texte affiché, de sorte que vous pouvez déplacer l'ensemble de la chaîne par le montant approprié de pixels.
La flèche dans le diagramme de points à la différence entre le glyphe nominal ascension et la de remontée maximaletel que discuté dans
FontMetrics
. Vous pouvez bricoler avecsetBorder(null)
; mais pour un contrôle absolu, vous aurez à rendre les glyphes que vous-même, comme le montre ici. Heureusement, les chiffres des glyphes de la plupart des polices de caractères ont un uniforme avance et ascension.