Diese Frage ist ein Follow-up von meinem previous questionJLabel nicht angezeigt HTML korrekt
ich ein JLabel mit HTML-Text in ihm haben. Der HTML-Inhalt wird jedoch nicht korrekt angezeigt. Das JLabel soll 26x26 Pixel haben, wobei unten rechts eine Zahl angezeigt wird. Mein Code scheint die Nummer nicht an der richtigen Position anzuzeigen, und ihre Höhe scheint abgeschnitten zu sein.
Hier ist mein Code:
final String buffBadgeStyles = "<style>"
+ "#container {height:26px; width:26px; background-color: red; position:relative;}"
+ "#bottom {position:absolute; bottom:0; right:0;}"
+ "</style>";
buffSlot_6 = new JLabel();
buffSlot_6.setBorder(new LineBorder(Color.BLACK));
buffSlot_6.setHorizontalAlignment(SwingConstants.CENTER);
buffSlot_6.setVerticalAlignment(SwingConstants.CENTER);
buffSlot_6.setText("<html>"
+ buffBadgeStyles
+ "<body>"
+ "<p id=\"container\"><span id=\"bottom\">2</span></p>"
+ "</body></html>");
buffSlot_6.setFont(new Font("Comic Sans MS", Font.BOLD, 12));
panel_playerBuffs.add(buffSlot_6);
Die JLabel ist gemeint, so etwas sehen Aber mein Code wird dieses
1) Swing-Implementierung von HTML/CSS ist sehr einfach. 2) Um eine bessere Hilfe zu erhalten, sollten Sie ein [MCVE] oder [Short, Self Contained, Correct Example] (http://www.sscce.org/) veröffentlichen. –
Warum verwenden Sie HTML? Sie können die Textposition mit Eigenschaften des Etiketts steuern. Lesen Sie die API für Methoden zur Steuerung der horizontalen/vertikalen Position des Textes. – camickr
@camickr Weil ich auch ein Hintergrundbild in der Mitte des Labels zentriert hinzufügen muss. Die JLabel-API erlaubt keine Überlappung von Bildern mit Zeichenfolgen. – Dragneel