Comment définir l'espacement de ligne/de la hauteur dans un JLabel dans Java Swing?
J'ai le texte suivant JLabel code:
JLabel someJLabel = new JLabel("<html>first line<br>second line</html>");
someJLabel.setFont(new Font("Arial", Font.PLAIN, 16));
Ce que je voudrais faire est d'être en mesure de contrôler la hauteur de la ligne/de l'espacement entre les deux lignes.
PS: j'ai aussi regardé à l'aide de paragraphes au lieu de lignes de rupture, mais c'est la même chose. Et je ne sais pas si vous pouvez le faire à l'intérieur d'une balise html sans l'aide de css (vous ne pouvez pas utiliser les css dans le code html dans un JLabel dans Java Swing).
OriginalL'auteur Stephane Grenier | 2010-06-24
Vous devez vous connecter pour publier un commentaire.
Cela devrait fonctionner, mais il ne l'est pas.
color: green
fonctionne bien.content.add(new JLabel("<html><p style=\"line-height: 150%;\">hi<br>world</p></html>"));
Je suppose que la hauteur de la ligne ne fonctionne pas. C'est la façon que vous feriez si vous étiez à utiliser les CSS, donc peut-être que vous ne pouvez pas le faire de cette façon. Voici un bel outil J'ai trouvé que vous pouvez utiliser pour tester si votre code HTML est de travailler rapidement.
Oh .. et merci pour le Swing Aperçu HTML lien! 🙂
Est-il possible de le faire sans css? Et merci aussi pour le lien!
OriginalL'auteur Dave
Découvrez la setStyleSheet(...) la méthode de la HTMLEditorKit. Je n'ai jamais utilisé avant, mais je crois que cela offre un soutien de base.
Sinon, vous pouvez utiliser un JTextPane pour contrôler l'espacement entre les lignes. Je pense que vous pouvez utiliser:
Vous pouvez ensuite modifier l'avant-plan/arrière-plan etc pour rendre le texte volet de ressembler à un label.
OriginalL'auteur camickr
Hmm .. CSS dans JLabel semble fonctionner pour moi, si on colle aux propriétés prises en charge. Essayez
padding
(oumargin
) etfont-size
:OriginalL'auteur David J. Liszewski
À cause de Java prend en charge <p> tag et CSS marge attribut vous pouvez utiliser la solution suivante:
P. S. Maintenant, il n'est pas nécessaire de fermer les balises html.
margin-top:-5px
ne fonctionne pas, maismargin-top:-5
n', pour quelque raison que ce soit...OriginalL'auteur Dmitry
Vous pouvez essayer d'utiliser deux étiquettes, et le réglage de la distance entre les deux, ainsi que les espaces, à l'aide d'un LayoutManager. J'aime GridBoxLayout, moi-même.
Edit: GridBagLayout. Oups!
Cela peut fonctionner si vous ne disposez que de 2 lignes, mais si c'est sur plusieurs lignes?
Si c'est sur plusieurs lignes, je voudrais utiliser un Volet de Texte, avec camickr de la solution.
OriginalL'auteur badpanda
Ne cadre vide de la frontière permet, comme
méthode syntaxe BorderFactory.createEmptyBorder(int top, int gauche, int bas, int droite)
OriginalL'auteur iamrakesh