0

我的应用程序使用 SAF (jsr 296)。我想在不同的平台上使用不同的外观:

Linux 的默认 (Java)

和用于 Windows 的系统(本机)。

添加:到目前为止,我在我的 Application 类的 startup() 方法中为 Windows 操作系统硬编码 L&F(如 Joy 和 Thompson 所建议的那样):

if (SystemUtils.IS_OS_WINDOWS) {
        UIManager.setLookAndFeel(
            UIManager.getSystemLookAndFeelClassName());
}

在 application.properties 文件中,指定了默认的 L&F。

没有更好的办法吗?

4

3 回答 3

3

试试这个:

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

它将根据您的应用程序运行的系统设置外观。

于 2011-07-22T09:11:35.540 回答
3

Linux 的默认 (Java)。..system(本机)适用于 Windows。

if (System.getProperty("os.name").startsWith("Windows")) {
    try {
        UIManager.setLookAndFeel(
            UIManager.getSystemLookAndFeelClassName());
    } catch (Exception e) {
        e.printStackTrace();
    }
}

将 Windows 的外观设置为本机 PLAF,同时保留 Linux/Unix 的(默认)Metal PLAF 并使用 Mac 的默认值,我们可靠地获悉其名称为:

com.apple.laf.AquaLookAndFeel

我可能会为 Linux/Unix 机器推荐 Nimbus。金属解放军是如此..上个千年。

于 2011-07-22T09:24:45.060 回答
0

你不需要这么多的代码来做到这一点。您可以创建特定于平台的属性文件,或在应用程序属性中使用“系统”LnF。更多详情请访问http://kenai.com/projects/bsaf

于 2011-07-22T19:57:28.647 回答