Java Swing概述:标签组件与图标

标签组件与图标

在Swing中显示文本或者提示信息的方法是使用标签,它支持文本字符串和图标。在应用程序的用户界面中,一个简短的文本标签可以使用户知道这些组件的目的,所以标签在 Swing中是比较常用的组件。

标签的使用

标签由JLabel类定义,它的父类为JComponent类。

标签可以显示一行文本,一张图片或者图文结合的文本,但是标签本身并不能产生任何类型的事件,只是简单的显示功能,但是可以使用标签的特性指定标签上的文本的对齐方式。

在下文中我们会详细介绍标签的各种用法。

图标的使用

Swing中的图标可以放置在按钮,标签等组件上,用于描述组件的用途。图标可以用Java支持的图标文件类型进行创建,也可以使用java.awt.Graphics类提供的功能方法来创建。

1. 创建图标

在Swing中通过Icon接口来创建图标,可以在创建时给定图标的大小、颜色等特性,如果使用Icon接口,必须实现Icon接口中的3个方法:

  1. public int getIconHeight();     用于获取图标的高度

  2. public int getIconWidth();      用于获取图标的宽度

  3. public void paintIcon(Component arg(), Graphics agr1, int arg2, int arg3); 用于实现在指定坐标位置画图

接下来具一格实现Icon接口创建图标的例子。

import java.awt.Component;
import java.awt.*;
import java.awt.Graphics;

import javax.swing.Icon;
import javax.swing.*;
import javax.swing.SwingConstants;

public class DrawIcon implements Icon {		//自定义一个DrawIcon类,实现Icon接口
	int width;		//声明图标的宽度
	int height;		//声明图标的高度
	public DrawIcon(int width, int height) {	//定义构造方法
		this.width = width;
		this.height =height;
	}
	
	@Override
	public void paintIcon(Component c, Graphics g, int x, int y) {	//实现父类Icon的paintIcon方法
		// TODO Auto-generated method stub
		g.fillOval(x, y, width, height);		//绘制一个圆形
	}

	@Override
	public int getIconWidth() {		//实现父类的getIconWidth()方法
		// TODO Auto-generated method stub
		return this.width;
	}

	@Override
	public int getIconHeight() {		//实现父类的getIconHeight()方法
		// TODO Auto-generated method stub
		return this.height;
	}
	public static void  main(String[] args) {
		DrawIcon dIcon = new DrawIcon(10, 10);	//实例化一个DrawIcon对象
		JLabel jl = new JLabel("测试", dIcon, SwingConstants.CENTER);	//创建一个标签,并将标签上的文字在设置在标签中间位置
		JFrame jf= new JFrame();		//创建一个JFrame窗口
		Container  con = jf.getContentPane();	//获得一个容器
		con.add(jl);	//将标签添加到容器中
		jf.setSize(100,100);	//设置容器大小
		jf.setVisible(true);	//设置容器可见性
		jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}
}

其运行结果如下:

在本实例中,因为DrawIcon实现了Icon接口,所以在该类中必须实现Icon接口中定义的方法,其中在实现paintIcon()方法中使用Graphics类中的方法绘制了一个圆形的标标 ,其余实现接口的方法为返回图标的长与宽。在DrawIcon类的构造方法中,设置了图标的长与宽,这样如果需要在窗体中使用图标,就可以使用如下代码创建图标。

DrawIcon icon = new DrawIcon(15,15);

在前文中我们提到过,一般情况下会将图标放置在按钮或者标签上,这里将图标放置在了标签上,然后 将标签添加到 容器中,这样就实现了在窗体中使用图标的功能。

2.使用图片图标

Swing中的图标除了可以绘制之外,还可以使用某个特定的图片创建。Swing利用javax.swing.ImageIcon类根据现有图片创建图标,ImageIcon类实现了Icon接口,同时 Java支持多种图片格式。

ImageIcon有多中构造方法,我们会在后面使用过程中进行介绍。

下面看一个创建图片图标的实例:

import java.awt.*;
import java.net.*;
import javax.swing.*;

public class MyImageIcon extends JFrame {
	private static final long serialVersionUID = 1L;
	public MyImageIcon() {
		Container container = getContentPane();
		JLabel jl = new  JLabel("这是一个JFrame窗体",JLabel.CENTER);	//创建一个标签
		URL url = MyImageIcon.class.getResource("Jcon.jpg");	//获取图片的路径
		Icon icon = new ImageIcon(url);		//实例化icon对象
		jl.setIcon(icon);		//为标签设置图片
		jl.setHorizontalAlignment(SwingConstants.CENTER);	//设置文字放置在标签中间
		jl.setOpaque(true);	//设置标签不透明状态
		container.add(jl);	//将标签添加到容器中
		setSize(500,200);	//设置容器大小
		setVisible(true);	//设置容器可见
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new MyImageIcon();
	}

}

其运行结果为:

getResource()方法可以获取文件的路径,要将图片放置在与.class 文件同一个目录中

 

猜你喜欢

转载自blog.csdn.net/weixin_42545594/article/details/82390041