JLabel自动换行

原创 2015年07月07日 01:20:40
<img src="http://img.blog.csdn.net/20150707012645217?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
package jlabel;

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.FontMetrics;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.plaf.basic.BasicHTML;
import javax.swing.text.View;


/**
 * 测试类
 *
 */
public class TesthtmlLabel extends JFrame{
	
	private static final long serialVersionUID = 1L;

	/**
	 * 将JLabel文本按照width宽度自动换行,会改变label的preferredSize为width,高度按照内容自动计算
	 * @param width 设定的换行宽度
	 * @param label 目标JLabel
	 * @return width<=0 或label为null时,返回label
	 */
	public JLabel createJLabelWithWrapWidth(int width, JLabel label){
		if (width <= 0 || label == null){
			return label;
		}
		String text = label.getText();
		if (!text.startsWith("<html>")){
			StringBuilder strBuilder = new StringBuilder("<html>");
			strBuilder.append(text);
			strBuilder.append("</html>");
			text = strBuilder.toString();
		}
		label.setText(text);
		View labelView = BasicHTML.createHTMLView(label, label.getText());
		labelView.setSize(width, 100);
		label.setPreferredSize(new Dimension(width, (int) labelView.getMinimumSpan(View.Y_AXIS)));
	    return label;
	}
	public TesthtmlLabel(){
		
		JLabel label = new JLabel();
		label.setText("a very1 very2 very3 very4 very5 very6 very7 very8 long9 string");
		label = createJLabelWithWrapWidth(200, label);
		JLabel label1 = new JLabel();
		label1.setText("a very1 very2 very3 very4 very5 very6 very7 very8 long9 string");
		label1 = createJLabelWithWrapWidth(200, label1);
		JLabel label2 = new JLabel();
		label2.setText("a very1 very2 very3 very4 very5 very6 very7 very8 long9 string");
		label2 = createJLabelWithWrapWidth(200, label2);
		
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setTitle("超链接标签");
		this.setLayout(new FlowLayout(FlowLayout.TRAILING,50,50));
		this.add(createJLabelWithWrapWidth(200, label));
		this.add(createJLabelWithWrapWidth(180, label1));
		this.add(createJLabelWithWrapWidth(160, label2));
		this.pack();
		this.setVisible(true);
	}
	public static void main(String[] args){
		new TesthtmlLabel();
	}
	
	
}
 
 

JLabel标签文字换行

JLabel中如果想让其上的文本标签换行显示,用一般的/r,/n是没有作用的。 JLabel可以使用html标记标签实现在任意地方换行,如下换行显示字符串: String strMsg1 ...
  • lianchao668
  • lianchao668
  • 2012年09月03日 13:27
  • 2968

Jlabel实现内容自动换行

在用java Swing写界面时,想实现JLabel中的文本内容自动换行,网上查了一下,大多是一些比较简单的加个 换行而已,于是自己写了一个函数,现在贴出了供大家学习。 效果图如下: 代码如下:p...
  • zhhtao89
  • zhhtao89
  • 2015年12月04日 21:09
  • 7333

java的JLabel中显示的文字换行

   无法通过直接settext实现,可以通过html标签中br换行实现。    JLabel.setText("new line");JLabel.setText("this lineadd a n...
  • chenzhanhai
  • chenzhanhai
  • 2011年01月18日 20:16
  • 4122

java Swing: JLabel 设置字体颜色 换行

JLabel换行: JLabel的Text设置为html 第一行 第二行 JLabel设置字体颜色: label.setForeground(c);   代码: public stat...
  • youran02100210
  • youran02100210
  • 2017年04月11日 10:18
  • 1872

JAVA swing JLabel JButton标签文本文字内容的换行

package hj.exam.fram; import javax.swing.*; public class test extends JFrame { private JButt...
  • hj_545
  • hj_545
  • 2011年04月26日 09:14
  • 10698

【swing】JLabel详解以及使用示例

JLabel 对象可以显示文本、图像或同时显示二者。可以通过设置垂直和水平对齐方式,指定标签显示区中标签内容在何处对齐。默认情况下,标签在其显示区内垂直居中对齐。默认情况下,只显示文本的标签是开始边对...
  • lzm18064126848
  • lzm18064126848
  • 2015年08月28日 10:35
  • 10987

java中TextArea和JTextArea的自动换行和滚动条

要用到一个文本显示区,为了便于复制,我用了JTextArea。JTextArea本身默认的是不换行,不滚动条显示。你设置完他的大小之后,他就只是显示在这个窗口大小内的内容。   换行     ...
  • u010499449
  • u010499449
  • 2014年08月12日 11:41
  • 5495

实现label文字以指定长度自动换行

  • 2009年10月11日 20:12
  • 39KB
  • 下载

Jlabel实现内容自动换行

在用java Swing写界面时,想实现JLabel中的文本内容自动换行,网上查了一下,大多是一些比较简单的加个 换行而已,于是自己写了一个函数,现在贴出了供大家学习。 效果图如下: 代码如下:p...
  • zhhtao89
  • zhhtao89
  • 2015年12月04日 21:09
  • 7333

cocos2dx之Label实现换行

我先创建一个label [cpp] view plaincopy std::string star_str = "star is not star in t...
  • llb19911212
  • llb19911212
  • 2014年08月05日 10:51
  • 2676
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JLabel自动换行
举报原因:
原因补充:

(最多只允许输入30个字)