java 中多个label如何换行,关于java:JLabel是否有“自动换行”属性?

本文探讨了如何在Java的JLabel中实现文本自动换行。通过利用HTML和CSS,尤其是设置固定宽度,可以达到类似“记事本”的换行效果。示例代码展示了如何动态生成包含HTML的文本,并通过JOptionPane展示不同宽度下的换行效果。
摘要由CSDN通过智能技术生成

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

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

我怎样才能做到这一点?

仅供参考,安德鲁斯的回答是最好的。

@HovercraftFullOfEels 我只是知道屏幕截图会有所作为! VBG>

是的,我必须再做一点,但是仍然有正确答案的帮助。 我想我应该学习一些HTML和样式...

@AndrewThompson他们很酷,但是让你回答慢! :)

@HovercraftFullOfEels为第二句话+1,不仅仅是您自己,还有任何使用任何语言的服务器端开发人员。 令我惊讶的是(例如)Servlet开发人员对他们的应用程序的HTML了解很少。 喷涌而出。 至于第一个..有人可能认为我不断添加图像是视觉噪声。

@MarianP是的,所以我使用了一个技巧。 将源1发布,然后在编辑中添加图像。 当然,这并没有帮助,因为我写(v。short)的源代码比花两个答案和一个勾号花了更长的时间。 ;)

可以使用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 ="

%1s";

Runnable r = () -> {

JOptionPane.showMessageDialog(

null, String.format(html, 200, s));

JOptionPane.showMessageDialog(

null

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值