Java 删除外观

Java Removing Look and Feel

如何删除我的 JFrame 应用程序的任何外观,使控件看起来像默认的 windows 控件?

Screenshot of what I'm looking for

您可以指定要使用的外观。我个人更喜欢默认使用 "system" 外观,默认使用 OS 特定实现(Windows on Windows)

EventQueue.invokeLater(new Runnable() {
    @Override
    public void run() {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
            ex.printStackTrace();
        }
    }
}

在加载任何其他 UI 元素之前执行此操作

您还应该查看 How to Set the Look and Feel 了解更多详情

class JFrame 属于 Swing Framework(因此您实际上创建的是 "Swing Application" 而不是 "JFrame Application")并且看到您附加了 nimbus 标签,您似乎已激活 Nimbus Look and Feel。如果你想实现原生的外观,你需要设置系统外观(参见同时写的MadProgrammers回答)。

您可以使用

自定义外观

UIManager.setLookAndFeel("path.to.lookAndFeel");

您还可以选择从运行程序的系统中检索外观: UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

我还没有测试过,但如果默认的 Windows 外观和感觉是您想要实现的,我建议您尝试 com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel

包含例外情况,完整代码为

 try {
        UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel");
    } 
    catch (UnsupportedLookAndFeelException e) {
       // handle exception
    }
    catch (ClassNotFoundException e) {
       // handle exception
    }
    catch (InstantiationException e) {
       // handle exception
    }
    catch (IllegalAccessException e) {
       // handle exception
    }

(如果以上方法不起作用,您可能需要使用

检查已安装的内容

public static UIManager.LookAndFeelInfo[] getInstalledLookAndFeels())