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開發(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)文章
解決IDEA無(wú)法讀取maven鏡像,jar包下載失敗的問題
這篇文章主要介紹了解決IDEA無(wú)法讀取maven鏡像,jar包下載失敗的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-10-10
Java并發(fā)工具類Exchanger的相關(guān)知識(shí)總結(jié)
今天給大家?guī)?lái)的文章是Java工具類Exchanger的相關(guān)知識(shí)總結(jié),文中有非常詳細(xì)的介紹及代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們很有幫助,需要的朋友可以參考下2021-06-06
idea64.exe.vmoptions文件如何設(shè)置調(diào)整VM配置文件
這篇文章主要介紹了idea64.exe.vmoptions文件如何設(shè)置調(diào)整VM配置文件問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
springboot中實(shí)現(xiàn)上傳文件的功能簡(jiǎn)單示例
這篇文章主要給大家介紹了關(guān)于springboot中實(shí)現(xiàn)上傳文件功能的相關(guān)資料,在Spring Boot中實(shí)現(xiàn)文件上傳下載功能相對(duì)簡(jiǎn)單,文中給出了代碼示例,需要的朋友可以參考下2023-09-09
SpringCloud服務(wù)網(wǎng)關(guān)Gateway的使用教程詳解
SpringCloud Gateway是Spring體系內(nèi)的一個(gè)全新項(xiàng)目,它旨在為微服務(wù)架構(gòu)提供一種簡(jiǎn)單有效的統(tǒng)一的API路由管理方式。本文就來(lái)為大家詳細(xì)講講Gateway的使用教程,需要的可以參考一下2022-09-09

