1、需求说明
在客户端程序中,经常会有展示一个icon图标的需求。
在 java swing 中,JLabel 被设计成了 展示静态文本 、静态icon的组件。
JLabel 的 setIcon 方法,可以设置icon图标,并进行展示;
但是,JLabel 并没有原生的实现 对 svg 格式的图标的展示;
本案例 介绍一下如何进行 svg 格式的图片的展示。
2、项目目录介绍
本项目是一个maven项目,各位coder可以根据自己的实际项目
由于icon资源是静态存放在项目目录下的,
因此各位coder请先熟悉我的案例项目结构,
然后再继续向下阅读!
Java-Swing-Demo
| -- src
| -- main
| -- java
| -- com.xx.JavaSwingTest
| -- resources
| -- images
| -- a.svg
| -- test
| -- pom.xml
3、案例代码
3.1 pom.xml
需要借助第三方的工具包 ,
pom.xml 中添加如下依赖。
<!-- 展示svg 格式图片的依赖 -->
<dependency>
<groupId>com.formdev</groupId>
<artifactId>flatlaf-extras</artifactId>
<version>3.0</version>
</dependency>
3.2 java 代码
import javax.swing.*;
import java.awt.*;
import java.net.URL;
public class JavaSwingTest {
public static void main(String[] args) {
// 1.主窗体对象
JFrame jFrame = new JFrame("测试窗口");
// 2.使用 JLabel 进行 icon 的展示:读取 svg 对象
ClassLoader classLoader = JavaSwingTest.class.getClassLoader();
ImageIcon flatSVGIcon = new FlatSVGIcon("images/a.svg", 50, 50, classLoader);
JLabel jLabel = new JLabel();
jLabel.setIcon(flatSVGIcon);
jFrame.add(jLabel, BorderLayout.CENTER);
// 主窗口的基本属性
jFrame.setBounds(300,300,60,60);
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.setVisible(true);
}
}
4、运行结果
5、完成
Congratulations! You are one step closer to your success!