一、主要实现 在label上添加图标icon
package lesson03;
import javax.swing.*;
import java.awt.*;
public class TestIcon extends JFrame implements Icon {
private int Width;
private int Height;
//无参构造
public TestIcon() {
}
//有参构造
public TestIcon (int Width,int Height) {
this.Height = Height;
this.Width = Width;
}
public void init(){
TestIcon icon = new TestIcon(15, 15);
//将icon设置在label上
JLabel label = new JLabel("testIcon",icon,SwingConstants.CENTER);
//设置容器
Container container = getContentPane();
container.add(label);
//注意这里用this,而不是icon
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new TestIcon().init();
}
@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;
}
}
运行结果
二、主要实现在label上添加图片
import java.awt.*;
import java.net.URL;
public class TestIcon01 extends JFrame {
public TestIcon01() {
JLabel label = new JLabel("这是一个图片icon");
//读取图片资源为url,使用的是image icon 类的getresource方法;
URL url = TestIcon01.class.getResource("lz.png");
//将图片变成图标icon
ImageIcon imageIcon = new ImageIcon(url);
//给标签设置图标icon
label.setIcon(imageIcon);
label.setHorizontalAlignment(SwingConstants.CENTER);
Container contentPane = this.getContentPane();
contentPane.add(label);
setVisible(true);
setBounds(100,100,400,400);
}
public static void main(String[] args) {
new TestIcon01();
}
}