下划线的颜色可以单独定义
import java.awt.*;
import javax.swing.*;
import javax.swing.border.LineBorder;
public class JLabelUnderLinePerfect extends JLabel {
private Color underLineColor;
public JLabelUnderLinePerfect() {
this("");
}
public JLabelUnderLinePerfect(String text) {
super(text);
}
public Color getUnderLineColor() {
return underLineColor;
}
public void setUnderLineColor(Color pUnderLineColor) {
underLineColor = pUnderLineColor;
}
public void paint(Graphics g) {
super.paint(g);
Rectangle r = g.getClipBounds();
int xoffset = 0, yoffset = 0, pointX = 0, pointY = 0, point2X = 0, point2Y = 0;
// 根据border的设置 计算出下划线的起止Point
if (null != this.getBorder()
&& null != this.getBorder().getBorderInsets(this)) {
Insets inserts = this.getBorder().getBorderInsets(this);
xoffset = inserts.left;
yoffset = inserts.bottom;
}
pointX = xoffset;
pointY = point2Y = r.height - yoffset
- getFontMetrics(getFont()).getDescent();
point2X = pointX + getFontMetrics(getFont()).stringWidth(getText());
if (null != underLineColor) {
g.setColor(underLineColor);
}
g.drawLine(pointX, pointY, point2X, point2Y);
}
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());
JLabelUnderLinePerfect label1 = new JLabelUnderLinePerfect("Label下划线");
f.add(label1);
JLabelUnderLinePerfect label2 = new JLabelUnderLinePerfect("Label下划线");
label2.setUnderLineColor(Color.BLUE);
f.add(label2);
JLabelUnderLinePerfect label3 = new JLabelUnderLinePerfect(
"Label(Border)下划线");
label3.setBorder(BorderFactory.createCompoundBorder(new LineBorder(
Color.RED), BorderFactory.createEmptyBorder(8, 18, 28, 38)));
label3.setUnderLineColor(Color.BLUE);
f.add(label3);
// f.pack();
f.setVisible(true);
}
}
分享到:
相关推荐
swing 中JTABLE中添加控件的例子 可以引申出添加很多控件
java swing 下划线 基础篇 我根据课程慢慢上传的 适合初学者 实用的好东西 大家快来呀!!!
很全面的哟,swing中文帮助文件,让你快速掌握各种java swing控件
swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3...
(java)Swing中弹出对话框的几种方式
swing 开发 Linux和window系统解决乱码参考文档,个人总结,不喜勿碰
Java Swing实现添加数据到数据库(数据库使用Mysql)并查询数据显示在界面中。
开发环境为intellij15+jdk8.0; 功能:使用swing创建窗口,添加主面板,在主面板下有几个tab,通过tab切换绘制不同的图形。
swing中的mvc实例 mvc在swing中的体现
主要介绍了Java Swing实现窗体添加背景图片的2种方法,结合实例形式较为详细的分析了Swing实现窗体添加背景图片的方法,并总结分析了Swing重绘中repaint与updateUI的区别,需要的朋友可以参考下
Java Html DJNativeSwing.jar DJNativeSwing-SWT.jar
Eclipse中swing插件Eclipse中swing插件Eclipse中swing插件
swing计算器 swing计算器swing计算器 swing计算器swing计算器 swing计算器swing计算器 swing计算器swing计算器 swing计算器 简易计算器
swing中的jlist 代码中定义了两个jlist 从一个jlist双击列表项可以将该项从这个列表删除并添加至另外一个列表中去
swing 教程swing 教程swing 教程swing 教程swing 教程swing 教程swing 教程swing 教程swing 教程
用Swing中实现小球, 控制小球数量, 算法
swing jtable列表的每列添加复选框
本文档是 Java 2 Platform Standard Edition 5.0 的 API 规范。完全中文,有用的可以下载
swing带滚动条的多选下拉选择框(name code形式) 如:选择“张家口,石家庄,衡水”选中的值为他们的code“zjk,sjz,hs” name code是自己定义的
很好的一个中文帮助API,易于学习和开发过程中遇到问题的查看