当前位置: 首页 > 面试题库 >

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

孙阳旭
2023-03-14
问题内容

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

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

我怎样才能做到这一点?


问题答案:

可以为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);
    }
}


 类似资料:
  • 我有这个代码,我确实想要一个特定模式的替换,但不是多就地替换。 结果是 但愿如此 同样,通过“循环”,我们得到了相同的结果。 它很小,非常令人失望!! 有什么建议说明为什么会这样吗?

  • 问题内容: 如何显示带有自动换行符的长字符串,网站地址,单词或符号集,以保持div宽度?我猜是一个自动换行。通常添加空格是可行的,但是是否有CSS解决方案,例如自动换行? 例如,它(非常讨厌)与div重叠,强制水平滚动等。 我可以在上面的字符串中添加什么以使其完全适合div中的几行或浏览器窗口? 问题答案: 长话短说: 就CSS解决方案而言,您必须:强制元素显示滚动条,并仅剪切掉任何多余的文本。有

  • 问题内容: 最近,我阅读了越来越多的关于人们在其HTML标记中使用自定义属性的信息,主要目的是为了嵌入一些额外的数据以供javascript代码使用。 我希望就使用自定义属性是否是一种好习惯以及一些替代方法收集一些反馈。 现在看来似乎真的可以简化 既 服务器端和客户端的代码,但它也不是W3C标准。 我们是否应该在Web应用程序中使用自定义HTML属性?为什么或者为什么不? 对于那些认为自定义属性是

  • 我正在深入阅读Jon Skeet的C#,并偶然发现了C#3中自动实现属性的解释。 这个的代码是: 解释这一点的文本是 现在,属性没有任何代码(或可见变量!)与它们关联,并且您正在以非常不同的方式构建硬编码列表。由于没有名称和价格变量可访问,您被迫在类中的任何地方使用属性,从而提高了一致性。现在,为了新的基于属性的初始化,您有了一个私有的无参数构造函数。(在设置属性之前,为每个项调用此构造函数。)在

  • 问题内容: 是否可以在Java属性文件的下一行继续长字符串? 例如,以某种方式 当我得到它时,它将返回“ Hello World”? 问题答案: 行尾的反斜杠使您可以跨越多行,而以行开头的空格将被忽略: 在Java文档这样说: 逻辑行包含一个键元对的所有数据,这些数据可以通过用反斜杠字符将行终止符序列转义而分布在几条相邻的自然线上。

  • 问题内容: 最近,我阅读了越来越多的关于人们在其HTML标记中使用自定义属性的信息,主要目的是为了嵌入一些额外的数据以供javascript代码使用。 我希望就使用自定义属性是否是一种好习惯以及一些替代方法收集一些反馈。 现在看来似乎真的可以简化 既 服务器端和客户端的代码,但它也不是W3C标准。 我们是否应该在Web应用程序中使用自定义HTML属性?为什么或者为什么不? 对于那些认为自定义属性是