You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 10下JOptionPane用Windows L&F却显示Win7图标问题

解决JOptionPane在Windows 10显示Win7样式图标的问题

问题原因

Java自带的Windows系统外观(WindowsLookAndFeel)并未调用Windows 10的原生对话框API,而是使用了内置的Win7风格图标资源,因此即使在Win10环境下运行,JOptionPane仍会显示旧版图标。

解决方案

要获取Windows 10原生样式的对话框及图标,需绕开Swing的JOptionPane,直接调用Windows系统的原生对话框API。最可靠的方式是使用JNA(Java Native Access)库调用系统的MessageBox函数。

步骤1:引入JNA依赖

如果使用Maven,在pom.xml中添加以下依赖:

<dependency>
    <groupId>net.java.dev.jna</groupId>
    <artifactId>jna</artifactId>
    <version>5.13.0</version>
</dependency>
<dependency>
    <groupId>net.java.dev.jna</groupId>
    <artifactId>jna-platform</artifactId>
    <version>5.13.0</version>
</dependency>

步骤2:编写调用原生对话框的代码

import com.sun.jna.platform.win32.User32;
import com.sun.jna.platform.win32.WinUser;

public class NativeWinDialog {
    public static void main(String[] args) {
        // 调用Windows原生MessageBox,显示信息类对话框(Win10原生图标)
        User32.INSTANCE.MessageBoxW(
                null,                // 父窗口句柄,null表示无父窗口
                "Test",              // 对话框内容
                "Test",              // 对话框标题
                WinUser.MB_OK | WinUser.MB_ICONINFORMATION  // 按钮类型+图标类型
        );
    }
}

图标类型可选值

可以根据需求替换图标类型参数:

  • WinUser.MB_ICONINFORMATION:信息图标(蓝色圆圈i)
  • WinUser.MB_ICONERROR:错误图标(红色叉号)
  • WinUser.MB_ICONWARNING:警告图标(黄色感叹号)
  • WinUser.MB_ICONQUESTION:问号图标(蓝色问号)

备选方案(自定义图标)

如果坚持使用Swing的JOptionPane,只能手动替换为自定义的Win10风格图标,但这种方式无法跟随系统主题变化,并非原生效果:

import javax.swing.*;

public class JOPtest {
    public static void main(String[] Args) {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (Exception e) {
            e.printStackTrace();
        }

        // 替换为自定义的Win10风格图标(需自行准备图标文件)
        ImageIcon customIcon = new ImageIcon("your-icon-path.png");
        JOptionPane.showMessageDialog(
                null,
                "Test",
                "Test",
                JOptionPane.OK_OPTION,
                customIcon
        );
    }
}

内容的提问来源于stack exchange,提问作者Miguel Soto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 04:25:54