ImageIcon 修改图片的大小

本文介绍了在JavaSwing中如何调整JLabel中显示的ImageIcon的大小。通过示例代码展示了从加载原始图片到使用`getScaledInstance()`方法改变图片尺寸,最后在JFrame中展示调整大小后的图标的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、需求说明

在 java swing 中,JLabel 可以展示 静态icon。
有时,我们需要对 icon 的大小进行调整;
本文进行 imageIcon 大小调整的方法分享。
[注意]:
    JLabel 中直接支持的文件格式有限,主要为 jpg,jpeg,png,gif.
    如果需要展示其它格式的,本案例不适用,请勿在此浪费时间。

2、项目目录介绍

本项目是一个maven项目,各位coder可以根据自己的实际项目
由于icon资源是静态存放在项目目录下的,
因此各位coder请先熟悉我的案例项目结构,
然后再继续向下阅读!
Java-Swing-Demo
   | -- src
   		| -- main
   			| -- java
   				| -- com.xx.JavaSwingTest
   			| -- resources
   				| -- images
   					| -- a.png
   		| -- test
   | -- pom.xml

3、案例代码

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

public class JavaSwingTest {
    public static void main(String[] args) {
      
        // 1.加载原始的图片
        ClassLoader classLoader = JavaSwingTest.class.getClassLoader();
        URL imageURl = classLoader.getResource("images/a.png");
        ImageIcon imageIcon = new ImageIcon(imageURl);
        int iconWidth = imageIcon.getIconWidth();
        int iconHeight = imageIcon.getIconHeight();
        System.out.println("修改前 : width = "+iconWidth+" ; height = "+iconHeight);

        // 2.修改尺寸 , 宽=100;长=100
        Image newImage = imageIcon.getImage().getScaledInstance(100, 100, Image.SCALE_DEFAULT);
        ImageIcon imageIconNew = new ImageIcon(newImage);
        int iconWidthNew = imageIconNew.getIconWidth();
        int iconHeightNew = imageIconNew.getIconHeight();
        System.out.println("修改后 : width = "+iconWidthNew+" ; height = "+iconHeightNew);


        // 3.在窗口中展示出来
        JFrame jFrame = new JFrame("测试窗口");

        // 使用 JLabel 进行 icon 的展示
        JLabel jLabel1 = new JLabel("", imageIcon,JLabel.CENTER);
        JLabel jLabel2 = new JLabel("", imageIconNew,JLabel.CENTER);
        // 左右布局的box
        Box box = Box.createHorizontalBox();
        box.add(jLabel1);
        box.add(jLabel2);


        // box 放入主窗口中
        jFrame.add(box, BorderLayout.CENTER);

        // 主窗口的基本属性
        jFrame.setBounds(300,300,400,300);
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jFrame.setVisible(true);
    }
}

4、运行结果

  • 控制台打印
修改前 : width = 200 ; height = 200
修改后 : width = 100 ; height = 100
  • 窗口展示
    在这里插入图片描述

5、完成

Congratulations! You are one step closer to your success!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值