Icon的使用

Icon的使用:

ImageIcon的类层次结构图:
java.lang.Object
   --javax.swing.ImageIcon

ImageIcon的结构函数:

  • ImageIcon():建立一个ImageIcon组件。
  • ImageIcon(byte[] imageData):建立一个ImageIcon组件,Image的数据放在byte array的数据可从GIF获释JPEG的文件读取面来 。
  • ImageIcon(byte[] imageData,String description)建立一个ImageIcon组件,Image的数据放在byte array中,而byte array 的数据可从GIF获释JPEG的文件读取而来,并多了一个此Icon的描述文字。
  • ImageIcon(Image image)利用Image组件,建立一个ImageIcon组件。 ImageIcon(Image image,String description)利用Image组件,建立一个ImageIcon组件,附加此Icon的描述文字。
  • ImageIcon(Staring filename)利用图文件建立一个ImageIcon组件。
  • ImageIcon(Staring filename,String description)利用图文件建立一个ImageIcon组件,附加此Icon的描述文字。
  • ImageIcon(URL location)利用网址建立一个ImageIcon组件。
  • ImageIcon(URL location)利用网址建立一个ImageIcon组件,附加此Icon的描述文字。
ImageIcon.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class ImageIconDemo {
	public static void main(String[] args) {
		JFrame f = new JFrame("ImageIconDemo");
		Container contentPane = f.getContentPane();
		Icon icon = new ImageIcon(".\\icons\\visa.gif");\\.表示workspace当前目录下
		JLabel label = new JLabel(icon, JLabel.CENTER);
		contentPane.add(label);
		f.pack();
		f.show();
		f.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
	}
}

若您想利用读文件的功能,先将图文件转成byte array,再制作Icon组件,你可以用下面的程序帮你完成:

ImageIconDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;

public class ImageIconDemo {
	public static void main(String[] args) {
		byte[] image = null;
		JFrame f = new JFrame("ImageIconDemo");
		Container contentPane = f.getContentPane();
		/*
		 * 在打开文件读文件的过程中可能会发生IOException,因此在下面的程序中用try与catch将此区段包起来。
		 */
		try {
			File file = new File(".\\icons\\visa.gif");// 利用文件visa.gif建立一个File组件。

			int size = (int) file.length();// 并求出此文件的长度。
			FileInputStream in = new FileInputStream(file);// 将文件组件放入FileInputStream中。
			image = new byte[size];
			in.read(image);// 将数据文件读进byte array中。
		} catch (IOException e) {
			System.err.println("File open falure:" + e.getMessage());
		}
		Icon icon = new ImageIcon(image);
		JLabel label = new JLabel(icon, JLabel.CENTER);
		contentPane.add(label);
		f.pack();
		f.show();
		f.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
	}
}

Icon是一个Interface,里面包含3种空的抽象文法,分别是getIconHeight()、getIconWidth()与paintIcon();若你想使用Icon类 来制作Icon,你必须实现(implements)这3个方法,我们直接来看下面这个例子,你就能清楚如何实现Icon界面建立Icon组件了。

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

public class IconDemo implements Icon {
	int height = 50;
	int width = 70;

	public int getIconHeight() {
		return height;
	}

	public int getIconWidth() {
		return width;
	}

	public void paintIcon(Component c, Graphics g, int x, int y) {
		g.drawRect(x, y, width, height);
		g.fillRect(x, y, width, height);
		g.setColor(Color.blue);
	}

	public static void main(String[] args) {
		JFrame f = new JFrame("IconDemo");
		Container contentPane = f.getContentPane();

		Icon icon = new IconDemo();
		JLabel label = new JLabel(icon, JLabel.CENTER);
		contentPane.add(label);
		f.pack();
		f.show();
		f.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值