gpt4 book ai didi

java - 我的应用程序使用 AWT,尽管其构建的 jar 使用 Swing。为什么?

转载 作者:行者123 更新时间:2023-12-01 12:42:58 25 4
gpt4 key购买 nike

我有一个应用程序,已编译成可执行 jar 文件,例如 app.jar。当我运行它时,它看起来就像一个原生的 Mac 应用程序,这看起来很让人想起我对 swing 的有限知识。然后,我用了Java's appBundler按照列出的说明捆绑 jar 文件,突然同一个项目将启动,看起来像 AWT 应用程序(更加模糊,更加像素化)。

除此之外,jar 文件将以工作目录作为父文件夹启动(如果是 dist/app.jar,则 dist 是工作目录)而应用程序会将我的用户驱动器 (~) 显示为工作目录。

这是我正在捆绑的示例程序:

package test;

import java.io.File;

import javax.swing.JOptionPane;

public class Test{
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
JOptionPane.showMessageDialog(null, new File(".").getAbsolutePath());
}
});
}
}

这个 jar 看起来像 swing,上面写着“/Users/me/Documents/app/dist/”。而该应用程序看起来像 AWT,并显示“/Users/me/”。

切换的原因是什么?我更喜欢 swing 和 jar 文件的目录,但我需要将其格式化为应用程序。

最佳答案

尝试强制外观使用“系统”外观...

public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
ex.printStackTrace();
}
//...

这应该确保它覆盖任何其他设置...

看看How to Set the Look and Feel了解更多详情

关于java - 我的应用程序使用 AWT,尽管其构建的 jar 使用 Swing。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24920168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com