Jlabel实现内容自动换行简单实例
发布时间:2020-12-14 20:08:55 所属栏目:Java 来源:网络整理
导读:在用javaSwing写界面时,想实现JLabel中的文本内容自动换行,网上查了一下,大多是一些比较简单的加个换行而已,于是自己写了一个函数,现在贴出了供大家学习。 效果图如下: 代码如下: package com.zht;import java.awt.BorderLayout;import java.awt.Dime
在用javaSwing写界面时,想实现JLabel中的文本内容自动换行,网上查了一下,大多是一些比较简单的加个换行而已,于是自己写了一个函数,现在贴出了供大家学习。 效果图如下: 代码如下: package com.zht; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.FontMetrics; import java.util.concurrent.TimeUnit; import javax.swing.JFrame; import javax.swing.JLabel; public class JLabelDemo extends JFrame { public static void main(String[] args) throws InterruptedException { System.out.println("hello"); JLabelDemo jLabelDemo = new JLabelDemo(); } public JLabelDemo() throws InterruptedException { String text = "This space contains technical articles," + " blogs and discussion forums with questions and answers." + "作为一个Java程序员,从论坛上感受到使用Java开发程序的人越来多," + "心中不免欣慰。hello"; JLabel label = new JLabel(); label.setSize(200,0); //注意JLabel一定要设置宽度 // System.out.println(label.getWidth()); JlabelSetText(label,text); setLayout(new FlowLayout()); add(label); pack(); // setSize(300,200); setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setVisible(true); } void JlabelSetText(JLabel jLabel,String longString) throws InterruptedException { StringBuilder builder = new StringBuilder("<html>"); char[] chars = longString.toCharArray(); FontMetrics fontMetrics = jLabel.getFontMetrics(jLabel.getFont()); int start = 0; int len = 0; while (start + len < longString.length()) { while (true) { len++; if (start + len > longString.length())break; if (fontMetrics.charsWidth(chars,start,len) > jLabel.getWidth()) { break; } } builder.append(chars,len-1).append("<br/>"); start = start + len - 1; len = 0; } builder.append(chars,longString.length()-start); builder.append("</html>"); jLabel.setText(builder.toString()); } } 总结 以上就是本文关于Jlabel实现内容自动换行简单实例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站: 《Java编程swing组件JLabel详解以及使用示例》 《Java编程实现swing圆形按钮实例代码》 如有不足之处,欢迎留言指出。感谢朋友们对本站的支持! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |