在Swing中显示文本或提示信息的方法时使用标签(JLabel),它本支持文本字符串和图标,在应用程序界面中,一个简短的文本标签可以使用户知道这些组件的目的,所以标签在Swing中是比较常用的组件,下面将讲解Swing标签的用法、如何创建标签,以及如何在标签上放置文本与图标
JLabel标签组件
标签由JLabel类定义,它的父类为JComponent类。
标签可以显示一行只读文本、一个图像或带图像的文本,它并不能产生任何类型的事件,只是简单地显示文本和图片,但是可以使用标签的特性指定标签上文本的对齐方式,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对象,并设置标签内容水平对齐方式;
例如,下面的例子中会讲解JLabel标签组件常用的用法,代码如下:
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.WindowConstants;
public class Demo extends JFrame {
public Demo() {
Container ct = getContentPane();
//设置标签的文本内容
JLabel jl = new JLabel("这是一个标签");
//设置标签的字体颜色
jl.setForeground(new Color(0,102,153));
//设置标签的字体、样式、大小
jl.setFont(new Font("宋体",Font.BOLD,13));
//设置标签的位置及大小
jl.setBounds(0,0,194,29);
//将组件添加到容器
ct.add(jl);
setBounds(200, 200, 200, 200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new Demo();
}
}
返回结果:
图标的使用
Swing中的图标可以放置在标签、按钮等组件上,用于描述组件的用途,图标可以用java支持图片文件类型进行创建,也可以使用java.awt.Graphice类提供的功能方法来创建,Swing可以利用javax.swing.ImageIcon类根据现有图片创建图标,ImageIcon类实现了Icon接口,同时java支持多种图片格式。ImageIcon类有多个构造放,下面是其中几个常用的构造方法:
- public ImageIcon():该构造方法创建一个通用的ImageIcon对象,当真正需要设置图片时在使用ImageIcon对象调用setImage(Image image)方法来操作;
- public ImageIcon(Image image):可以直接从图片源创建图标;
- public ImageIcon(Image image,String description):除了可以从图片源创建图标外,还可以为这个图片添加简短的描述,但这个描述不会再图标上显示,可以使用getDescription()方法获取这个描述;
- public ImageIcon(URL url):该构造方法利用位于计算机网络上的图形文件创建图标;
下面来看一个创建图片图标的实例。代码如下:
import java.awt.Container;
import java.net.URL;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;
public class Demo extends JFrame {
public Demo() {
Container container = getContentPane();
//创建一个标签
JLabel jl = new JLabel("这是一个JFrame窗体", JLabel.CENTER);
//获取图片所在的URL
Icon icon = new ImageIcon("src/1.png"); //创建Icon对象
jl.setIcon(icon); //为标签设置图片
//设置文字放置在标签中间
jl.setHorizontalAlignment(SwingConstants.CENTER);
jl.setOpaque(true); //设置标签为不透明状态
container.add(jl); //将标签添加到容器中
setSize(500, 500); //设置窗体大小
setVisible(true); //使窗体可见
//设置窗体关闭模式
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String args[]) {
new Demo(); //创建MyImageIcon对象
}
}
返回结果: