gpt4 book ai didi

java - JLabel 无法正确显示 HTML

转载 作者:太空宇宙 更新时间:2023-11-03 22:56:16 24 4
gpt4 key购买 nike

这个问题是我的 previous question 的后续问题

我有一个 JLabel,其中包含 HTML 文本。但是,HTML 内容未正确显示。 JLabel 应该是 26x26 像素,并在右下角显示一个数字。我的代码似乎没有在正确的位置显示数字,而且它的高度似乎被截断了。

这是我的代码:

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);

JLabel 应该看起来像这样 enter image description here但是我的代码正在生成这个 enter image description here

有什么想法吗?

最佳答案

您可以通过使用辅助面板(包装标签)并为面板选择适当的布局来获得此 View 。这样你就不需要html了。您应该为环绕面板而不是标签设置 26 像素大小。

package so;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.border.LineBorder;

public class Main {

public static void main(String[] args) {

SwingUtilities.invokeLater( () -> {

JFrame frame = new JFrame("Label test");

JPanel helperPanel = new JPanel();

frame.setContentPane(helperPanel);
helperPanel.setLayout(new BorderLayout());

JLabel buffSlot_6 = new JLabel();
buffSlot_6.setBorder(new LineBorder(Color.BLACK));
buffSlot_6.setHorizontalAlignment(SwingConstants.RIGHT);
buffSlot_6.setVerticalAlignment(SwingConstants.BOTTOM);
buffSlot_6.setText("2");

buffSlot_6.setFont(new Font("Comic Sans MS", Font.BOLD, 12));
helperPanel.add(buffSlot_6, BorderLayout.CENTER);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setSize(100, 100);
frame.setVisible(true);

} );
}
}

关于java - JLabel 无法正确显示 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38319887/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com