Я столкнулся с проблемой, связанной с указанием ширины html-элемента в JLabel, и подумал, что я бы запустил его на флагштоке и посмотрел, есть ли у кого-нибудь совет.
Когда я указываю ширину элементаиспользуя значение единицы измерения «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);
}
}