blog迁移至 :http://www.micmiu.com
swing中Label添加下划线大致有下面三种实现方法:
- [一]、利用<HTML>标签实现
- [二]、利用Graphics 重写paint方法画出下划线
- [三]、完美实现下划线,支持Border设置和自定义Color
下面具体分析每种实现方式的优缺点:
[一]、利用<HTML>标签实现
优点:
- 原生态的Label,无需任何改造
- 支持自定义的Border的标签
缺点:
- 下划线的颜色和标签的颜色一致,无法单独自定义
代码示例:
package michael.swing.label;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.border.LineBorder;
/**
* @blog http://sjsky.iteye.com
* @author Michael
*/
public class JLabelUnderLineHtml {
/**
* @param args
*/
public static void main(String[] args) {
JFrame f = new JFrame("JLabe with Under Line");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(new Dimension(300, 200));
f.setLayout(new FlowLayout());
JLabel label1 = new JLabel("<html><u>Label下划线</u><html>");
f.add(label1);
JLabel label2 = new JLabel("<html><u>Label下划线</u><html>");
label2.setForeground(Color.BLUE);
f.add(label2);
// 有Border的标签
JLabel label3 = new JLabel("<html><