下划线的颜色可以单独定义
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中,下划线通常用于实现各种视觉效果或者特定的功能,比如强调某个按钮或文本组件的重要信息,或者是实现快捷键的表示。在Java Swing中,下划线的应用主要体现在JButton、JLabel、JMenuItem等组件上。 在...
在大多数编程环境中,如Visual Basic(VB)、C#或Java Swing,标签控件(Label)是一个简单的图形组件,用于显示静态文本。通常,它们不响应鼠标点击事件,但我们可以自定义其行为。 在VB中,可以实现这个功能如下...
在Java的Swing或JavaFX中,可以使用`JTextPane`或`RichTextFX`库来实现富文本。通过` StyledDocument `对象,我们可以插入带有特定样式的文本片段。在JavaScript的前端开发中,我们可以利用HTML的`<span>`元素和CSS...
在这个环境中,我们可以使用Swing库来创建用户界面。Swing提供了丰富的组件库,包括JLabel,它用于显示文本和图像。在JavaSE中,如果我们想要在JLabel中实现超链接效果,即点击文本后能够触发特定的动作,如打开一个...
17. **Word下划线设置**:在Word中,添加波浪下划线应该使用【格式】或【开始】菜单中的字体设置,而不是【工具】菜单。 18. **Word格式工具栏**:I字母按钮用于使文本变为斜体,而不是粗体。 19. **TCP功能**:...
- **知识点**: “追加查询”用于将一个或多个表中的记录添加到另一个表的末尾。 - 正确答案 D 描述了追加查询的功能。 ### 7. Java Swing 框架窗口 - **知识点**: 创建 Swing 框架窗口需要继承 `JFrame` 类。 - `...
- **解释**: C++ 中的标识符必须以字母或下划线开头,并且只能包含字母、数字和下划线。例如,“&&a” 包含非法字符。 ### 14. Telnet 远程登录 - **知识点**: Telnet 协议允许用户远程登录到另一台计算机上执行...
- **解释**: Java 中合法的标识符可以包含字母、数字、下划线 `_` 和美元符号 `$`,但不能以数字开头,也不应与关键字相同。 ### 14. 获取请求参数的方法 在 Web 开发中,获取 HTTP 请求中的参数。 - **选择题...
在大多数GUI框架中,如Java的Swing库,`MenuBar`通常直接继承自更高级的容器类,而不是基本的`Component`。 #### 题目2:事件触发机制 - **问题描述**:如果加载窗体,先被触发的事件是? - A. `Load`事件 - B. `...
- 提供了一系列基本的GUI组件,如Button、Label等。 #### 第十二部分:JFC(Java Foundation Classes) - 包含Swing组件库,提供更丰富的GUI功能。 #### 第十三部分:Applets - 过时的技术,曾用于编写嵌入网页中...
Java的标识符由字母、下划线、美元符号组成,并且不能以数字开头。 **数据类型:** Java的数据类型分为两大类:原始数据类型和引用数据类型。 1. **原始数据类型**:包括int、float、boolean等。 2. **引用数据...
### Java入门学习笔记 #### 一、Java特点与运行...- AWT组件库包含了各种基本的GUI组件,如Button、Label等。 #### 十二、JFC(Java Foundation Classes) - JFC是Swing的基础,提供了更丰富的GUI组件和布局管理器...