Jlabel實(shí)現(xiàn)內(nèi)容自動(dòng)換行簡(jiǎn)單實(shí)例
在用javaSwing寫界面時(shí),想實(shí)現(xiàn)JLabel中的文本內(nèi)容自動(dòng)換行,網(wǎng)上查了一下,大多是一些比較簡(jiǎn)單的加個(gè)換行而已,于是自己寫了一個(gè)函數(shù),現(xiàn)在貼出了供大家學(xué)習(xí)。
效果圖如下:

代碼如下:
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ì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:
《Java編程實(shí)現(xiàn)swing圓形按鈕實(shí)例代碼》
如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
- Java編程swing組件JLabel詳解以及使用示例
- java實(shí)現(xiàn)的計(jì)算器功能示例【基于swing組件】
- Java Swing 多線程加載圖片(保證順序一致)
- Java Swing實(shí)現(xiàn)簡(jiǎn)單的體重指數(shù)(BMI)計(jì)算器功能示例
- Java swing實(shí)現(xiàn)的計(jì)算器功能完整實(shí)例
- java swing實(shí)現(xiàn)的掃雷游戲及改進(jìn)版完整示例
- Java swing框架實(shí)現(xiàn)的貪吃蛇游戲完整示例
- Java編程實(shí)現(xiàn)swing圓形按鈕實(shí)例代碼
- Java Swing組件編程之JTable表格用法實(shí)例詳解
相關(guān)文章
關(guān)于Kill指令停掉Java程序的問(wèn)題
這篇文章主要介紹了Kill指令停掉Java程序的思考,主要探究kill指令和java的關(guān)閉鉤子的問(wèn)題,需要的朋友可以參考下2021-10-10
PowerJob的OhMyClassLoader工作流程源碼解讀
這篇文章主要介紹了PowerJob的OhMyClassLoader工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
java配置dbcp連接池(數(shù)據(jù)庫(kù)連接池)示例分享
java配置dbcp連接池示例分享,大家參考使用吧2013-12-12
java自帶的MessageDigest實(shí)現(xiàn)文本的md5加密算法
這篇文章主要介紹了java自帶的MessageDigest實(shí)現(xiàn)文本的md5加密算法,需要的朋友可以參考下2015-12-12
SpringBoot如何實(shí)現(xiàn)starter原理詳解
這篇文章主要介紹了SpringBoot如何實(shí)現(xiàn)starter原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
Java求解二叉樹(shù)的最近公共祖先實(shí)例代碼
樹(shù)是一種非線性的數(shù)據(jù)結(jié)構(gòu),它是由n(n>=0)個(gè)有限結(jié)點(diǎn)組成一個(gè)具有層次關(guān)系的集合,這篇文章主要給大家介紹了關(guān)于Java求解二叉樹(shù)的最近公共祖先的相關(guān)資料,需要的朋友可以參考下2021-06-06
SpringCloud如何解決服務(wù)之間的通信問(wèn)題
本文主要介紹了SpringCloud如何解決服務(wù)之間的通信問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-08-08

