欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-02-12 12:44:01
在用javaswing写界面时,想实现jlabel中的文本内容自动换行,网上查了一下,大多是一些比较简单的加个换行而已,于是自己写了一个函数,现在贴出了供大家学习。 效果...

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

效果图如下:

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, 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编程swing组件jlabel详解以及使用示例

java编程实现swing圆形按钮实例代码

如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!