微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JavaJLabel是否有“自动换行”属性?

如何解决JavaJLabel是否有“自动换行”属性?

可以为body使用HTML样式(CSS)设置宽度。反过来,这将确定要渲染的行数,并由此确定标签的首选高度。

在CSS中设置宽度避免了需要计算标签(或标签的最佳尺寸)出现换行的位置。

import javax.swing.*;

public class FixedWidthLabel {

    public static void main(String[] srgs) {
        final String s = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean eu nulla urna. Donec sit amet risus nisl, a porta enim. Quisque luctus, ligula eu scelerisque gravida, tellus quam vestibulum urna, ut aliquet sapien purus sed erat. Pellentesque consequat vehicula magna, eu aliquam magna interdum porttitor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed sollicitudin sapien non leo tempus lobortis. Morbi semper auctor ipsum, a semper quam elementum a. Aliquam eget sem metus.";
        final String html = "<html><body style='width: %1spx'>%1s";

        Runnable r = () -> {
            JOptionPane.showMessageDialog(
                    null, String.format(html, 200, s));
            JOptionPane.showMessageDialog(
                    null, String.format(html, 300, s));
        };
        SwingUtilities.invokelater(r);
    }
}

解决方法

我在JLabel中显示一些文本。基本上,我是动态生成该文本的,然后应用一些HTML标记(例如BRB)来格式化文本。最后,我将此格式文本分配给我的JLabel。

现在,我希望Jlabel在到达屏幕末尾时自动将文本换行到下一行,例如“记事本”中的“自动换行”功能。

我怎样才能做到这一点?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。