在用javaswing寫(xiě)界面時(shí),想實(shí)現(xiàn)jlabel中的文本內(nèi)容自動(dòng)換行,網(wǎng)上查了一下,大多是一些比較簡(jiǎn)單的加個(gè)換行而已,于是自己寫(xiě)了一個(gè)函數(shù),現(xiàn)在貼出了供大家學(xué)習(xí)。
效果圖如下:
代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
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." + "作為一個(gè)java程序員,從論壇上感受到使用java開(kāi)發(fā)程序的人越來(lái)多," + "心中不免欣慰。hello" ; jlabel label = new jlabel(); label.setsize( 200 , 0 ); //注意jlabel一定要設(shè)置寬度 // 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()); } } |
總結(jié)
以上就是本文關(guān)于jlabel實(shí)現(xiàn)內(nèi)容自動(dòng)換行簡(jiǎn)單實(shí)例的全部?jī)?nèi)容,希望對(duì)大家有所幫助。如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
原文鏈接:http://blog.csdn.net/zhhtao89/article/details/50179695