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

光轮看

养星汉
2023-03-14

我用的是光轮造型

我设置了外观的UIDefaults的主要和次要属性

有没有一种方法,更新所有组件的画家使用新的颜色,还是我需要为每个属性实现一个自定义画家?

我已经打电话给SwingUtilities了。在UIDefaults中设置属性后,更新ComponentTreeUI(窗口)。

编辑:

以下代码设置L

try {
    for( LookAndFeelInfo info : UIManager.getInstalledLookAndFeels() ) {
        if( "Nimbus".equals( info.getName() ) ) {
            UIManager.setLookAndFeel(info.getClassName());
            customizeNimbusLaF();
            SwingUtilities.updateComponentTreeUI( appWindow );
            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类型,具体取决于要设置的属性。

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

欢迎迈克尔

共有3个答案

徐阳炎
2023-03-14

我想在这里提出的这种方法之外增加一种替代方法。

特别是,以下问题中描述的与UIManager相关的所有问题都由具有材质主题化系统概念的材质ui swing库解决。

Material Theme System(材质主题系统)可以在一个类中设置颜色和样式决策,如有/无边框、带圆角的边框或不带边框,该类在这里的packagemdlaf下进行了说明。主题

下面是一个用法示例

  try {
      JDialog.setDefaultLookAndFeelDecorated(true);
      JFrame.setDefaultLookAndFeelDecorated(false);
      MaterialTheme theme = new MaterialLiteTheme();
      // here your custom config theme.setXXX();
      MaterialLookAndFeel material = new MaterialLookAndFeel(theme);
      UIManager.setLookAndFeel(material);
  } catch (UnsupportedLookAndFeelException e) {
      e.printStackTrace();
  }

你也可以围绕主题,进行自定义更改,阅读时调用SwingUtilities。updateComponentTreeUI(窗口)

仲孙温文
2023-03-14

将这些上的位置更改为代码行

       UIManager.setLookAndFeel(info.getClassName());
       customizeNimbusLaF();

       customizeNimbusLaF();
       UIManager.setLookAndFeel(info.getClassName());
龙飞文
2023-03-14

不知道你试过什么,因为

>

  • 在创建Swing GUI并启动AWT线程之前设置UIManager的所有设置

    你必须调用SwingUtilities。updateComponentTreeUI(窗口)在所有情况下,Swing GUI都是可见的,您需要更改

    单独的问题可能与XxxUIResources有关,但如果没有看到您的SSCCE,就不知道了

    为了获得更好的帮助,请尽快发布一篇SSCCE演示您关于Nimbus L的问题

  •  类似资料:
    • 概述 Makeblock 光面轮胎64*16mm由硅制成,表面光滑,可以降低阻力,使您的遥控车跑得更快。它也兼容于mBot中的Makeblock同步带轮90T。 参数 材质:硅胶 直径:64mm 宽度:16mm 尺寸图纸 搭建案例

    • 这是我用来在我的网页上创建slick carousel的配置。 除了一件事,当我调整我的浏览器窗口的大小,从1920宽到800宽时,旋转播放器就会消失,内容就像普通的div一样显示,但是当我增加浏览器窗口的宽度时,旋转播放器就不会重新创建。它仍然像没有carousel的HTML div块。 如有任何帮助,我们将不胜感激。

    • 问题内容: 我在AngularJS应用程序之一中使用Slick轮播。为此,我创建了如下指令: 这是我在查看文件中的代码: 在这种情况下,它可以正常工作并正确初始化。 但是,当我使用ngRepeat动态创建幻灯片时,它没有初始化,并且一个接一个地显示幻灯片。 这是我使用ngRepeat的代码 有什么建议,我该如何解决? 问题答案: 我怀疑光滑的插件可能需要完全渲染DOM才能正常工作。 尝试:

    • Unity 中的光照主要由灯光对象提供。还有两种其他方式可以产生光(环境光和自发光材质),这取决于你选择的光照方案。 下面几节详细介绍了 Unity 中创建灯光的各种方法。

    • Lights are an essential part of every scene. While meshes and textures define the shape and look of a scene, lights define the color and mood of your 3D environment. You'll likely work with more than

    • 我有一个nimbus服务器和另外3个supervisor服务器。我有11个Storm拓扑正在运行。但他们都只在灵光里奔跑。如何配置其他监控器,使拓扑分布在不同的监控器之间。我必须更改哪些配置文件?