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

一、标签的使用

标签由JLabel类定义,它的父类为JComponent类,该类提供了以下几个构造方法:

1、public JLabel():创建一个不带图标和文本的JLabel对象

2、public JLabel(Icon icon):创建一个带图标的JLabel对象

3、public JLabel(Icon icon,int aligment):创建一个带图标的JLabel对象,并设置图标水平对齐

4、public JLabel(String text,int aligment):创建一个带文本的JLabel对象,并设置文本水平对齐

5、public JLabel(String text,Icon icon,int aligment):创建一个带文本、带图标的JLabel对象,并将图标、文本设置为水平对齐

 

二、图标的使用

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

1、创建图标

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

(1)public int getIconHeight():获取图标长

(2)public int getIconWeight():获取图标宽

(3)public void paintIcon(Component arg0,Graphics arg1,int arg3):实现在指定坐标画图

示例如下:

import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.GridLayout;

import javax.swing.Icon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class DrawIcon {
  public static void main(String[] args) {
    JFrame frame = new JFrame();
    JLabel label = new JLabel(new ElliptIcon(380, 260, Color.red));
    label.setLayout(new GridLayout(2, 2));
    frame.setContentPane(label);
    for (int i = 0; i < 4; i++) {
      label.add(new JLabel(new ElliptIcon(100, 60, Color.blue)));
    }
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.pack();
    frame.setVisible(true);
  }
}
class ElliptIcon implements Icon {
  private int w, h;
  private Color color;

  public ElliptIcon(int w, int h, Color color) {
    this.w = w;
    this.h = h;
    this.color = color;
  }

  @Override
  public void paintIcon(Component c, Graphics g, int x, int y) {
    g.setColor(color);
    g.fillOval(x, y, w, h);
  }

  @Override
  public int getIconWidth() {
    return w;
  }

  @Override
  public int getIconHeight() {
    return h;
  }
}

运行结果如下图:

Java实现标签搜索功能_ico

2、使用图片图标

Swing中的图标除了可以绘制之外,还可以使用某个特定的图片创建。Swing利用java.swing.ImageIcon类根据现有图片创建图标,该类有多个构造方法,如下:

(1)public ImageIcon():创建一个通用的ImageIcon对象

(2)public ImageIcon(Image image):可以直接从图片源创建图标

(3)public ImageIcon(Image image,Strign description):除了可以从图片源创建图标之外,还可以为这个图标添加简短的描述,这个描述不会显示,可以使用getDescription()方法获取

(4)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 MyImageIcon extends JFrame{
	public MyImageIcon() {
		Container container = getContentPane();
		JLabel jl = new JLabel("这是一个JFrame窗体",JLabel.CENTER);
		URL url = MyImageIcon.class.getResource("AIshibie.jpg");
		Icon icon = new ImageIcon(url);
		jl.setIcon(icon);
		jl.setHorizontalAlignment(SwingConstants.CENTER);
		jl.setOpaque(true);
		container.add(jl);
		setSize(250,100);
		setVisible(true);
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}
	public static void main(String agrs[]) {
		new MyImageIcon();
	}
}

运行结果如下:

Java实现标签搜索功能_java_02