当前位置: 首页 > 知识库问答 >
问题:

设置外观和感觉颜色

越俊艾
2023-03-14

我用的是光轮造型

以下代码设置L

try {
    for( LookAndFeelInfo info : UIManager.getInstalledLookAndFeels() ) {
        if( "Nimbus".equals( info.getName() ) ) {
            UIManager.setLookAndFeel(info.getClassName());
            customizeNimbusLaF();
            break;
        }
    }
}
catch( Exception e ) {
    LogUtility.warning( "cannot set application look and feel" );
    LogUtility.warning( e.getMessage() );
}


代码做什么,它应该做什么(设置光轮外观

private final void customizeNimbusLaF() {       
    UIManager.put( "control" , UIConstants.GREY_LIGHT );
    UIManager.put( "nimbusAlertYellow" , UIConstants.YELLOW );
    UIManager.put( "nimbusBase" , UIConstants.GREY_DARK );
    UIManager.put( "nimbusDisabledText" , UIConstants.GREY_DARK );
    UIManager.put( "nimbusFocus" , UIConstants.BLUE_LIGHT );
    UIManager.put( "nimbusGreen" , UIConstants.GREEN );
    UIManager.put( "nimbusInfoBlue" , UIConstants.BLUE_MIDDLE );
    UIManager.put( "nimbusRed", UIConstants.RED );
    UIManager.put( "nimbusSelectionBackground",
    UIConstants.BLUE_MIDDLE );

    UIManager.put( "background" ,UIConstants.GREY_LIGHT );
    UIManager.put( "controlDkShadow" , UIConstants.GREY_DARK );
    UIManager.put( "controlShadow", UIConstants.GREY_MIDDLE );
    UIManager.put( "desktop", UIConstants.BLUE_MIDDLE );
    UIManager.put( "menu", UIConstants.GREY_LIGHT );
    UIManager.put( "nimbusBorder", UIConstants.GREY_MIDDLE );
    UIManager.put( "nimbusSelection", UIConstants.BLUE_MIDDLE );
    UIManager.put( "textBackground", UIConstants.BLUE_LIGHT );
    UIManager.put( "textHighlight", UIConstants.BLUE_LIGHT );
    UIManager.put( "textInactiveText", UIConstants.GREY_MIDDLE );

    // panel
    UIManager.put( "Panel.background", UIConstants.GREY_LIGHT );
    UIManager.put( "Panel.disabled", UIConstants.GREY_LIGHT );
    UIManager.put( "Panel.font", UIConstants.DEFAULT_FONT );
    UIManager.put( "Panel.opaque", true );

    // button
    UIManager.put( "Button.background", UIConstants.GREY_LIGHT );
    UIManager.put( "Button.disabled", UIConstants.GREY_LIGHT );
    UIManager.put( "Button.disabledText", UIConstants.BLUE_MIDDLE );
    UIManager.put( "Button.font", UIConstants.DEFAULT_FONT );

    // menu
    UIManager.put( "Menu.background", UIConstants.GREY_LIGHT );
    UIManager.put( "Menu.disabled", UIConstants.GREY_LIGHT );
    UIManager.put( "Menu.disabledText", UIConstants.GREY_DARK );
    UIManager.put( "Menu.font", UIConstants.MENU_FONT );
    UIManager.put( "Menu.foreground", UIConstants.BLACK );
    UIManager.put( "Menu[Disabled].textForeground",
            UIConstants.GREY_MIDDLE );
    UIManager.put( "Menu[Enabled].textForeground", UIConstants.BLACK );
    UIManager.put( "MenuBar.background", UIConstants.GREY_LIGHT );
    UIManager.put( "MenuBar.disabled", UIConstants.GREY_LIGHT );
    UIManager.put( "MenuBar.font", UIConstants.MENU_FONT );
    UIManager.put( "MenuBar:Menu[Disabled].textForeground",
            UIConstants.GREY_MIDDLE );
    UIManager.put( "MenuBar:Menu[Enabled].textForeground",
            UIConstants.BLACK );
    UIManager.put( "MenuItem.background", UIConstants.GREY_LIGHT );
    UIManager.put( "MenuItem.disabled", UIConstants.GREY_LIGHT );
    UIManager.put( "MenuItem.disabledText", UIConstants.GREY_MIDDLE );
    UIManager.put( "MenuItem.font", UIConstants.MENU_FONT );
    UIManager.put( "MenuItem.foreground", UIConstants.BLACK );
    UIManager.put( "MenuItem[Disabled].textForeground",
            UIConstants.GREY_MIDDLE );
    UIManager.put( "MenuItem[Enabled].textForeground",
            UIConstants.BLACK );

    // tree
    UIManager.put( "Tree.background", UIConstants.BLACK );      
}


UICon量中常量的数据类型是FontColor类型,具体取决于要设置的属性。

问题是,只有少数人看起来

关于外观,我还有第二个问题

有人能告诉我哪里出了问题吗?

共有2个答案

徐茂材
2023-03-14

我发现了主要问题。我没有打电话给SwingUtilities。updateComponentTreeUI(窗口)放置所有外观后

现在它以我预期的方式执行。

另一个问题:有没有办法指定整个应用程序的首选字体?

庄博厚
2023-03-14

1.set for changes有点粗糙,必须设置L

伪码

if( "Nimbus".equals( info.getName() ) ) {
   UIManager.setLookAndFeel(info.getClassName());
   UIManager.getLookAndFeelDefaults().put("Xxx", "Xxx")
   UIManager.getLookAndFeelDefaults().put("Xxx", "Xxx")
   break;
}

2.字体和部分颜色存储为所有Swings L的XxxUI资源

3.更好的方法是使用UIManager Defaults by@camickr来列出已安装的方法,而不是搜索NimbusDefaults

4.关于Painter,您可以设置自己的Painter(取决于UIDefaults中的类型或值)或覆盖XxxUIResources(取决于类型,有时有些是不起作用的,因为Nimbus的开发在四分之二的某个地方结束了),

编辑

5.没有比这更好的了,我认为@aephyr参与了Nimbus开发或e.I???

 类似资料:
  • 我用java在netbeans 7.2中创建了一个gui应用程序。我在那里创建了一个。在自动生成的代码中,它被设置为nimbus look and feel。但我的身体看起来不像光轮。 所以我调试了代码,发现nimbus在返回的数组中不可用。 那么,我应该如何安装nimbus外观?JDK1.6用来编译代码。

  • 问题内容: 我对将其放在何处感到困惑: 我没有扩展课程,但使用了 :D 问题答案: 最常见的放置方法是在您的静态void main(String [] args)方法内部。像这样: 有关更多信息,请访问以下站点:http : //docs.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html

  • 我的代码: Javadocs用于抽象按钮。setDisplayedMnemonicIndex()说 并非所有的外观都支持这一点。 我将我的外观和感觉设置为 即使索引是由Windows 7下的setDisplayedMonicIndex()显式设置的,我也看不到助记符上的下划线(仅当我按ALT时)。 它的工作但是如果我不设置的外观 有没有办法做到这一点?这是由Windows的设置引起的吗?

  • 自定颜色设置 对于大多数色彩管理工作流程,最好使用 Adobe Systems 已经测试过的预设颜色设置。只有在色彩管理知识很丰富并且对自己所做的更改非常有信心的时候,才建议您更改特定选项。 自定选项完成后,可以将它们保存为预设。保存颜色设置确保您可以再次使用它们并与其他用户或应用程序共享。 要将颜色设置保存为预设,请单击 “颜色设置”对话框中的“存储”。要确保应用程序在 “颜色设置”对话框中显示

  • 外观(Facade) Intent 提供了一个统一的接口,用来访问子系统中的一群接口,从而让子系统更容易使用。 Class Diagram Implementation 观看电影需要操作很多电器,使用外观模式实现一键看电影功能。 // java public class SubSystem { public void turnOnTV() { System.out.prin

  • 我有一个JFrame。我使用了: JTabbed窗格。 JButton。 在JPanel中添加的Jtag中的背景图像。 光轮的外观和感觉。 我的问题是,每当我使用Nimbus look and feel时,只有在添加了背景图像时,JButton才会消失。但这不会发生在其他外观上。有人能帮我把按钮弄清楚吗? 以下是我的代码: 编辑: 谢谢。