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

网友投稿 700 2023-02-28


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

在用javaSwing写界面时,想实现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 discussiolXHytbsXEqn 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);

}

voilXHytbsXEqd JlabelSetText(JLabel jLabel, String longlXHytbsXEqString)

throws InterruptedException {

StringBuilder builder = new StringBuilder("");

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("
");

start = start + len - 1;

len = 0;

}

builder.append(chars, start, longString.length()-start);

builder.append("");

jLabel.setText(builder.toString());

}

}

总结

以上就是本文关于Jlabel实现内容自动换行简单实例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

《Java编程swing组件JLabel详解以及使用示例》

《Java编程实现swing圆形按钮实例代码》

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


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:深入理解Java中HashCode方法
下一篇:OkHttp踩坑随笔为何 response.body().string() 只能调用一次
相关文章

 发表评论

暂时没有评论,来抢沙发吧~