首页 > 其他分享 >JLabel文本自动换行,限定宽度获取高度

JLabel文本自动换行,限定宽度获取高度

时间:2023-03-21 13:00:55浏览次数:45  
标签:换行 createHTMLView javax int 宽度 JLabel 文本 lbl

 

UI开发中,常常需要在显示长字符串时能在特定宽度的位置自动换行。这个只要使用html来作为JLabel的文本,然后控制JLabel宽度,JLabel就会自动换行。关键是:宽度定了,高度如何取得? JLabel本身并没有提供方案。研究JDK源码后发现了这个方法。



int maxWidth = 100; //限制的宽度

JLabel lbl = new JLabel("<html>长字符串..........</html>");

javax.swing.text.View v = javax.swing.plaf.basic.BasicHTML.createHTMLView(lbl, lbl.getText());

v.setSize(maxWidth, Integer.MAX_VALUE);
int h = (int) v.getMinimumSpan(View.Y_AXIS); //这是取得的高度



下面可以

lbl.setPreferredSize(new Dimension(maxWidth, h));



注意: javax.swing.plaf.basic.BasicHTML.createHTMLView(...) 的调用是很耗时的。如何需要多次计算某个JLabel的高度,最好不要每次都createHTMLView。只要在设定JLabel文本的时候create一个View实例就可以了,然后每次都用这个实例来计算高度。


.

标签:换行,createHTMLView,javax,int,宽度,JLabel,文本,lbl
From: https://blog.51cto.com/u_3871599/6140128

相关文章

  • 几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍
    富文本编辑器富文本编辑器(RichTextEditor,RTE)是一种可内嵌于浏览器,所见即所得的文本编辑器。它提供类似于OfficeWord的编辑功能,方便那些不太懂HTML用户使用,富文本编......
  • Vue+Element UI 弹出文本框
    效果: 代码:/*打开审批弹窗*/openAudit(row){this.$confirm('请确认审核结果','审核',{distinguishCancelAndClose:true,confirm......
  • 文本属性
    文本属性 text-align指定元素文本的水平对齐方式值描述left文本居左排列,默认值right把文本排列到右边center把文本排列到中间h1{text-align:cen......
  • Vue 长文本自动隐藏和单选框默认选择
      末尾加show-tooltip-when-overflow 单选框label前加:<el-form-itemlabel="代理机构状态"><el-radio-groupv-model="form.agentstatus"><el-radio:label=......
  • css实现文本水平&垂直对齐的三种方式
    第一种:使用padding和text-align:center例如:.center{padding:100px0;border:1pxsolidgreen;text-align:center;} 第二种:使用line-heig......
  • IPv6地址的文本表示规范
     背景随着IPv6越来越普及,经常要跟IPv6地址打交道,迫切需要一个统一的IPv6地址文本表示规范。RFC4291简单的说明了如何将IPv6地址表示成文本形式,但有很多有歧义和不周全......
  • empty来显示暂无数据简直太好用,阻止用户复制文本user-select
    element-ui表格某一列无数据显示--很多时候,表格的某一列可能是没有数据的。空着了不好看,ui小姐姐会说显示--这个时候,小伙伴是怎么做的呢?使用循环来判断是否为空,然后赋值为-......
  • python 文本形成视频
    https://modelscope.cn/models/damo/text-to-video-synthesis/summary?continueFlag=316e474d46439886c7d26c850c8c9d37frommodelscope.pipelinesimportpipelinefrom......
  • 字符类能拷贝非文本文件吗?为什么?
    文章目录​​3.3拷贝文件问题​​​​3.3.1字符流拷贝文件​​​​1)字符流拷贝文本文件:​​​​2)字符流拷贝非文本文件:​​​​3.3.2字节流拷贝文件​​​​1)字节流拷贝......
  • django集成富文本编辑器
    1.安装 django-ckeditor  pipinstalldjango-ckeditor注意:我的django版本是4.1.2,下载的django-ckeditor是6.0。   由于即使我的ckeditor版本这么高,依然有许多不......