Я пытаюсь установить ширину JLabel с помощью тега div HTML.JLabel с HTML не задает правильную ширину
Рассмотрим следующий код:
import javax.swing.*;
public class Xyzzy extends JFrame{
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
Xyzzy frame = new Xyzzy();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BoxLayout(frame.getContentPane(), BoxLayout.PAGE_AXIS));
String s = "x ";
for (int i=0; i<200; ++i)
s += "x ";
JLabel jl = new JLabel("<html><div style=\"width: 300px;\">" + s + "</div></html>");
frame.add(jl);
frame.setSize(600, 600);
frame.setVisible(true);
}
});
}
}
Я бы ожидал, что JLabel быть 300 пикселей в ширину, но в действительности это около 390 пикселей в ширину. Если я изменил спецификацию ширины на 200 пикселей, результирующая метка будет иметь ширину около 260 пикселей.
Что я делаю неправильно?
Я не знаю, всегда ли это верно, но в вашем случае размер всегда на 30% больше заданной ширины, попробуйте использовать 'float size = 300 /1.3f; JLabel jl = new JLabel ("