Java Swing JFrame.SetDefaultLookandFeel装饰vs UIManager.setLookAndFeel

Java Swing JFrame.SetDefaultLookandFeel装饰vs UIManager.setLookAndFeel,java,swing,user-interface,theming,Java,Swing,User Interface,Theming,在Swing中,似乎有两种方法可以设置应用程序的主题/外观: JFrame.setdefaultlookandfeeldecoraded,以及 UIManager.setLookAndFeel 我想知道它们之间的区别是什么以及何时/为什么使用它们。只有UIManager.setLookAndFeel(…)方法允许设置应用程序的外观。这是您希望用于为应用程序设置特定外观的方法 使用静态JFrame.setDefaultLookAndFeelDecorated(…)只会影响新创建的JFrames

在Swing中,似乎有两种方法可以设置应用程序的主题/外观:

  • JFrame.setdefaultlookandfeeldecoraded
    ,以及
  • UIManager.setLookAndFeel

我想知道它们之间的区别是什么以及何时/为什么使用它们。

只有
UIManager.setLookAndFeel(…)
方法允许设置应用程序的外观。这是您希望用于为应用程序设置特定外观的方法

使用静态
JFrame.setDefaultLookAndFeelDecorated(…)
只会影响新创建的
JFrame
s如何“装饰”其窗口(即窗口标题栏、关闭/最小化按钮等)。通过
LookAndFeel
或系统(或“窗口管理器”)。一般来说,它不会影响应用程序的外观

从文档中:

如果
defaultlookandfeeldecoraded
true
,当前的
LookAndFeel
支持提供窗口装饰,并且当前的窗口管理器支持未装饰的窗口,那么新创建的
JFrames
将由当前的
LookAndFeel
提供窗口装饰。否则,新创建的
JFrames
的窗口装饰将由当前窗口管理器提供

就我个人而言,我很少发现后一种方法有用。

这可能会对你有所帮助