1.创建图标
在Swing中通过Icon接口来创建图标,可以在创建的时候给定图标的大小、颜色等特性。如果使用Icon接口,必须实现Icon接口的3个方法。
public int getIconWidth()获取图标的宽
public int getIconHeigth()获取图标的高
public void paintIcon(Component arg0, Graphics arg2, int arg3)用于实现在指定的坐标位置画图
import javax.swing.*;//实现Icon接口
import java.awt.*;
public class DrawIcon implements Icon {
private int width;
private int height;
public DrawIcon(int width, int height)//定义构造方法
{
this.width = width;
this.height = height;
}
public int getIconWidth()//图标的宽
{
return this.width;
}
public int getIconHeight()//图标的高
{
return this.height;
}
public void paintIcon(Component arg0, Graphics arg1, int x, int y)//绘制一个圆
{
arg1.fillOval(x, y, width, height);
}
public static void main(String []args)
{
DrawIcon icon = new DrawIcon(15, 15);
//创建一个标签,并设置标签上的文字在标签中央
JLabel jl = new JLabel("测试", icon, SwingConstants.CENTER);
JFrame jf = new JFrame();
Container container = jf.getContentPane();
// jl.setHorizontalAlignment(SwingConstants.CENTER);//使标签上的文字居中
container.add(jl);//标签加入容器中
container.setBackground(Color.white);//设置容器的背景
jf.setVisible(true);//使窗体可见
jf.setSize(200, 150);//窗体大小
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//设置窗体的关闭方式
}
}
2.使用图片图标
Swing中的图标除了可以绘制外,还可以使用某个特定的图片创建。Swing利用javax.swing.ImageIcon类根据现有的图片创建图标。ImageIcon类实现了Icon的接口,同时支持多种图片格式。
常用的构造方法:
public ImageIcon()创建一个通用的ImageIcon对象,当真正使用图片时在使用ImageIcon对象调用setImage(Image image)来创建图标
public ImageIcon(Image image)可以直接从图片创建图标
public ImageIcon(Image image, Strign description)用图片创建图标时可以为图标添加简短的描述。可以使用getDescription()方法来获得这个描述。
public ImageIcon(URL url)该构造方法利用位于计算机网络上的图像文件创建图标
import javax.swing.*;
import java.awt.*;
import java.net.URL;
public class MyImageIcon extends JFrame {
public MyImageIcon() {
Container container = new Container();
//创建一个标签
JLabel jl = new JLabel("this is a JFrame.", JLabel.CENTER);
URL url = MyImageIcon.class.getResource("imageButton.jpg");//获取图片所在的URL
Icon icon = new ImageIcon(url);//实例化Icon对象
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 []args)
{
new MyImageIcon();
}
}