视频链接:16、Icon、ImageIcon标签_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1DJ411B75F?p=16&vd_source=b5775c3a4ea16a5306db9c7c1c1486b5
1.在Label上添加Icon
package com.yundait.lesson04;import javax.swing.*;
import java.awt.*;public class IconDemo extends JFrame implements Icon {private int width;private int height;public IconDemo(){}public IconDemo(int width, int height){this.width = width;this.height = height;}//初始化一个窗口和图标public void init(){//创建一个图标,图标可以放在Label上,也可以放在按钮上IconDemo iconDemo = new IconDemo(30,30);JLabel jLabel = new JLabel("", iconDemo, SwingConstants.CENTER);//创建容器,并添加标签Container container = getContentPane();container.add(jLabel);//设置可见性和窗口关闭事件this.setVisible(true);this.setBounds(200,200,500,400);this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}//重写画图标方法@Overridepublic void paintIcon(Component c, Graphics g, int x, int y) {g.setColor(Color.yellow);g.fillOval(x,y,width,height);}//重写获得图标宽度方法@Overridepublic int getIconWidth() {return this.width;}//重写获得图标高度方法@Overridepublic int getIconHeight() {return this.height;}//程序主方法public static void main(String[] args) {new IconDemo().init();}
}
2.在Label上添加ImageIcon
package com.yundait.lesson04;import javax.swing.*;
import java.awt.*;
import java.net.URL;public class ImageIconDemo extends JFrame {//使用无参构造器,初始化窗口和图标public ImageIconDemo(){//创建一个标签JLabel jLabel = new JLabel("ImageIconDemo");//获取图像文件,并创建图像图标对象URL url = ImageIconDemo.class.getResource("VCG211239251300.jpg");ImageIcon imageIcon = new ImageIcon(url);//在标签上添加图像类型的图标jLabel.setIcon(imageIcon);//设置标签水平对齐jLabel.setHorizontalAlignment(SwingConstants.CENTER);//创建容器,并在容器中添加标签Container container = this.getContentPane();container.add(jLabel);//设置窗口可见、位置、大小、窗口关闭时间事件this.setVisible(true);this.setBounds(100,100,1000,900);this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}//程序main方法public static void main(String[] args) {new ImageIconDemo();}
}