在Swing中显示文本或提示信息的方法是使用标签。本节将探讨Swing标签的用法、如何创建标签,以及如何在标签上放置文本和图标。
1、标签的使用
标签可以显示一行只读文本、一个图像或带图像的文本,它并不能产生任何类型的事件,只是简单地显示文本和图片,但是可以使用标签的特性制定标签上文本的对齐方式。
标签由JLabel类定义,JLabel类提供了多种构造方法,可以创造多种标签:
public JLabel():创建一个不带图标和文本的JLabel对象;
public JLabel(Icon icon):创建一个带图标的JLabel对象 ;
public JLabel(Icon icon,int aligment):创建一个带图标的JLabel对象,并设置图标水平对齐方式;
public JLabel(String text,int aligment):创建一个带文本的JLabel对象,并设置文字水平对齐方式;
public JLabel(String text,Icon icon,int aligment):创建一个带文本、带图标的JLabel对象,并设置标签内部的水平对其格式。
2、图标的使用
在Swing中通过Icon接口来创建图标,可以在创建时给定图标的大小,颜色等特性。如果使用Icon接口,必须实现Icon接口中的3个方法:
1 public int getIconHeight();
2 public int getIconWidth();
3 public void paintIcon(Component arg(),Graphics arg1,int arg2,int arg3);//paintIcon()方法实现在指定坐标位置画图
1 import java.awt.Component;
2 import java.awt.Container;
3 import java.awt.Graphics;
4
5 import javax.swing.Icon;
6 import javax.swing.JFrame;
7 import javax.swing.JLabel;
8 import javax.swing.SwingConstants;
9 import javax.swing.WindowConstants;
10
11 public class DrawIcon implements Icon { //实现Icon接口
12 private int width; //声明图标的宽
13 private int height;//声明图标的长
14 public int getIconHeight(){ //实现getIconHeight()方法
15 return this.height;
16 }
17 public int getIconWidth(){ //实现getIconWidth()方法啊
18 return this.width;
19 }
20 public DrawIcon(int width,int height){//定义构造方法
21 this.width=width;
22 this.height=height;
23 }
24 //试下安paintIcon()方法
25 public void paintIcon(Component arg0, Graphics arg1,int x, int y){
26 arg1.fillOval(x, y, width, height);
27 }
28 public static void main(String[] args){
29 DrawIcon icon=new DrawIcon(15,15);
30 JLabel j=new JLabel("测试",icon,SwingConstants.CENTER); //创建一个标签,并设置标签上的文字在标签正中间
31
32 JFrame jf=new JFrame();//创建一个JFrame窗口
33 Container c=jf.getContentPane();
34
35 c.add(j);
36 jf.setSize(100,100);
37 jf.setVisible(true);
38 jf.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
39
40 }
41 }
思路:一般情况下将图标放置在按钮或标签上,这里将图标放置在标签上,然后将标签添加到容器中,这样就实现了在窗体中使用图标的功能。
3、图标也可以是图标
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通