java - 如何在基于 Swing 或 NetBeans 平台的 Java GUI 应用程序中更改 WM_CLASS 值?

标签 java swing netbeans xorg

所有基于 Swing/NetBeans 的 Java GUI 应用程序似乎都具有相同的 WM_CLASS 值:

WM_CLASS(STRING) = "sun-awt-X11-XFramePeer", "java-lang-Thread"

可以通过发出xprop 命令并指向窗口来查看此参数。自定义它的实际目的是让类似 Mac 的停靠栏(例如 AWN(以及 Ubuntu 的 Unity))区分应用程序窗口并将它们分组在应用程序的固定启动器图标下。为此,需要在 ~/.local/share/applications.application 文件中相应地设置 StartupWMClass 参数/usr/共享/应用程序。不用说,如果多个应用程序对 WM_CLASS 使用相同的字符串,AWN(和类似物)就会感到困惑。

最佳答案

This blog postToolkit 中找到该字段控制它的,名为 awtAppClassName。它建议使用反射来修改它:

Toolkit xToolkit = Toolkit.getDefaultToolkit();
java.lang.reflect.Field awtAppClassNameField = xToolkit.getClass().getDeclaredField("awtAppClassName");
awtAppClassNameField.setAccessible(true);
awtAppClassNameField.set(xToolkit, applicationName);

关于java - 如何在基于 Swing 或 NetBeans 平台的 Java GUI 应用程序中更改 WM_CLASS 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10593075/

相关文章:

maven - 如何强制 NetBeans 加载 Gradle 项目而不是 Maven pom?

c++ - 如何使用 Clion 或 Netbeans 正确导入 Tensorflow 源代码

java - 克隆多维数组

java - 如何配置从 jboss eapstandalone.xml 连接到 IBM Websphere MQ 多实例队列管理器

java - 如何在 Eclipse 中开启 Tomcat 的自动重启?

java - 确定多行文本组件中文本的 XY 位置

java - 悬停/单击时使 JButton 变暗

netbeans - 如何在 Netbeans 8.2 中转换制表符中的空格?

java - 在 GWT 异步回调中,如何在 onSuccess 中处理相同的返回类型?

java - 让 Java Swing 程序重新布局自身