16.Icon图标与ImageIcon 图片 标签

package GUI;

import javax.swing.*;
import java.awt.*;

// 图标Icon,进一步学习,可以放在label上,也可以放在按钮上
public class Test16_Icon extends JFrame implements Icon{
    private int width,height;
    public Test16_Icon(){};
    public Test16_Icon(int width,int height){
        this.width=width;
        this.height=height;
    }
    public void init(){
        Test16_Icon test16Icon = new Test16_Icon(150, 150);
        setSize(500,500);
        setVisible(true);
        Container container =getContentPane();
        JLabel label = new JLabel("zhan",test16Icon,SwingConstants.CENTER);  // 标签的其他表示形式
        container.add(label);

    }

    @Override
    public void paintIcon(Component c, Graphics g, int x, int y) {
        g.fillOval(x,y,width,height);  // 椭圆,w,h是包裹住椭圆的矩形大小

    }

    @Override
    public int getIconWidth() {
        return width;
    }

    @Override
    public int getIconHeight() {
        return height;
    }

    public static void main(String[] args) {
        new Test16_Icon().init();
    }



}

package GUI;

import javax.swing.*;
import java.awt.*;
import java.net.URL;

// 图片标签
public class Test16_ImageIcon extends JFrame{
    public Test16_ImageIcon(){
        // 获取图片 地址
        URL url = Test16_ImageIcon.class.getResource("piture.png"); //  获得同一级别下的资源
        ImageIcon imageIcon = new ImageIcon(url);  // ImageIcon 是一个图片类
        JLabel imageLabel = new JLabel("ImageLabel",imageIcon ,0);  // 也是标签
        
        Container contentPane = getContentPane();
        contentPane.add(imageLabel);


        setSize(500,500);
        setVisible(true);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);


    }

    public static void main(String[] args) {
        new Test16_ImageIcon();
    }
}
posted @   被占用的小海海  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示