Icon图标
Icon是一个接口,我们的IconImage类实现了这个接口
- 如果我们要创建Icon实现类的对象,这个时候我们首先就是要创建一个类,然后让这个类去实现这个Icon接口
Icon实现类的对象也是和IconImage对象一样,都是可以添加到标签和按钮等组件上
这里我们举一个例子:
我们创建一个Icon实现类对象,然后将这个Icon实现类对象添加到一个按钮上
eg:
package 用户图形界面.Icon;
import javax.swing.*;
import java.awt.*;
public class IconDemo1 extends JFrame implements Icon {
/*
这里我们设置了两个私有属性,分别表示我们创建的图标的宽和高
*/
private int width;
private int heigth;
public IconDemo1(){
}
/*
这里提供一个有参构造方法,就可以设置我们创建的图标的宽和高
*/
public IconDemo1(int width, int heigth){
this.width = width;
this.heigth = heigth;
}
/*
这里我们提供了一个初始化方法,在这个方法中我们要创建一个设置一些关于窗口的设置,
并且我们要创建一个标签,还有创建一个图标,并且将我们创建的图标添加到这个标签上
*/
public void init(){
IconDemo1 iconDemo1 = new IconDemo1(20,20);
JLabel jLabel = new JLabel("跟着飞飞学java",iconDemo1,SwingConstants.CENTER);
Container container = this.getContentPane();
container.add(jLabel);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setBounds(100,100,400,400);
this.setVisible(true);
}
/*
这里是我们实现的三个抽象方法,这三个方法都是Icon接口中的抽象方法,这个时候我们的IconDemo1类实现了这个接口,这个时候
我们就要在这个类中实现这个接口中的抽象方法
*/
@Override
//这个抽象方法就是一个画笔,我们可以使用这个画笔来绘制一个图案
public void paintIcon(Component c, Graphics g, int x, int y) {
g.fillOval(x,y,width,heigth);
}
@Override
//这个抽象犯法就是获得我们的图标的高度
public int getIconHeight() {
return this.heigth;
}
@Override
//这个抽象方法就是获得我们的图标的宽度
public int getIconWidth() {
return this.width;
}
public static void main(String[] args) {
new IconDemo1().init();
}
}