首页 > 开发 > Java > 正文

Jlabel实现内容自动换行简单实例

2024-07-13 10:16:10
字体:
来源:转载
供稿:网友

在用java/224771.html">javaSwing写界面时,想实现JLabel中的文本内容自动换行,网上查了一下,大多是一些比较简单的加个换行而已,于是自己写了一个函数,现在贴出了供大家学习。

效果图如下:

java,jlabel,换行,自动换行,jlabel自动换行,swing

代码如下:

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, start, len-1).append("<br/>");			start = start + len - 1;			len = 0;		}		builder.append(chars, start, longString.length()-start);		builder.append("</html>");		jLabel.setText(builder.toString());	}}

总结

以上就是本文关于Jlabel实现内容自动换行简单实例的全部内容,希望对大家有所帮助。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表