Jlabel實現(xiàn)內(nèi)容自動換行簡單實例
在用javaSwing寫界面時,想實現(xiàn)JLabel中的文本內(nèi)容自動換行,網(wǎng)上查了一下,大多是一些比較簡單的加個換行而已,于是自己寫了一個函數(shù),現(xiàn)在貼出了供大家學習。
效果圖如下:
代碼如下:
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開發(fā)程序的人越來多," + "心中不免欣慰。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實現(xiàn)內(nèi)容自動換行簡單實例的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:
如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
相關(guān)文章
PowerJob的OhMyClassLoader工作流程源碼解讀
這篇文章主要介紹了PowerJob的OhMyClassLoader工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-01-01java配置dbcp連接池(數(shù)據(jù)庫連接池)示例分享
java配置dbcp連接池示例分享,大家參考使用吧2013-12-12java自帶的MessageDigest實現(xiàn)文本的md5加密算法
這篇文章主要介紹了java自帶的MessageDigest實現(xiàn)文本的md5加密算法,需要的朋友可以參考下2015-12-12SpringBoot如何實現(xiàn)starter原理詳解
這篇文章主要介紹了SpringBoot如何實現(xiàn)starter原理詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-06-06