我遇到了在 JLabel 中指定 html 元素的宽度的问题,我想我会在这里把它放在旗杆上,看看是否有人有任何建议。
当我使用“px”单位值指定元素的宽度时,结果大小实际上是 ~133%,而如果我不使用单位或使用“pt”,我会得到我指定的确切大小。
在下面的示例中,如果将“width: 100px”更改为“width:100pt”,您将获得正确的尺寸。
这个答案https://stackoverflow.com/a/6257861/131795似乎是相关的,并且 72 dpi 调整似乎与我在示例中看到的不匹配相匹配。
我可能在这里对一段古老的代码感到愤怒,但是为什么要转换绝对 px 值而将 pt 值视为绝对值?
public class test {
public static void main(String args[]) {
JFrame frame = new JFrame();
JLabel label = new JLabel("<html><div style='width: 100px; background-color: red;'>test</div>");
frame.getContentPane().add(label);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 200);
frame.setVisible(true);
}
}