图标标签就是在窗口上用画笔进行标签的制作显示或者用图片等等。
图标标签我们用ICON表示,ICON是一个接口,我们需要实现它才能使用图标标签。
示例如下:
1.用画笔画图作为图标
package Swing;
import javax.swing.*;
import java.awt.*;
public class ImageIconDemo extends JFrame implements Icon {
private int width;
private int height;
public ImageIconDemo(){};//无参构造
public ImageIconDemo(int width,int height){
this.width = width;
this.height = height;
};//有参构造
public void init(){
ImageIconDemo iconDemo = new ImageIconDemo(20,20);//获得一个图标的对象
iconDemo.setVisible(true);
JLabel label = new JLabel("666",iconDemo,SwingConstants.CENTER);//将图标放在label标签上,并设置图标居中
Container container=iconDemo.getContentPane();//以iconDEmo为对象,实例化容器
container.add(label);//然后将label放进容器里
}
public static void main(String[] args) {
new ImageIconDemo().init();
}
//ICON是一个接口,在运用的时候要实现里面的方法,三个方法分别为
//1.组件,画笔要画的图标,图标的大小
//2.获得图标的宽
//3.获得图标的高
@Override
public void paintIcon(Component c, Graphics g, int x, int y) {
g.fillOval(x,y,width,height);
}
@Override
public int getIconWidth() {
return this.width;
}
@Override
public int getIconHeight() {
return this.height;
}
}
运行效果如图:
2.用本机图片作为图标
package Swing;
import javax.swing.*;
import java.awt.*;
import java.net.URL;
public class Icondemo1 extends JFrame {
public Icondemo1(){
JLabel label = new JLabel("ImageIcon");
URL url=Icondemo1.class.getResource("tp.jpg");//获取图片的地址
ImageIcon icondemo1 = new ImageIcon(url);
label.setIcon(icondemo1);//将图片加入标签中
label.setHorizontalAlignment(SwingConstants.CENTER);//设置标签居中
Container container = getContentPane();
container.add(label);
setVisible(true);
setBounds(100,100,200,200);
}
public static void main(String[] args) {
new ImageIconDemo();
}
}