`

UIManager

 
阅读更多
关于 UIManager.getColor(Object key) 的使用 
Posted on 2004年12月16日 20:06 
   在做界面主题的变换的时候,我们经常要对系统的一些颜色进行默认设置,而获得在主题变换时,组件的颜色自动转换到该主题相应的颜色的一种效果。UIManager在这方面是一种很关键的应用。
   在UIManager(Java 2 Platform SE v1.4.2)的方法public static Color getColor(Object key)注释中,key是一个指定颜色的对象,而具体包括哪些可以使用则不得知。
    我们阅读jdk的源代码可以知道,运行UIManager.getColor的时候,其实是通过运行[return getDefaults().getColor(key); ]这段代码获得颜色的。而getDefaults() 返回了一个UIDefaults。再看看UIDefaults,它是通过[Object value = get(key);]来获得颜色的对象,通过它调用的最低层的代码,我们知道,这些对象列表是保存在一个Hashtable(UIDefaults继承了Hashtable)中的,而Hashtable提供了一个接口[public synchronized Enumeration keys()]来获得这些值。
    因此,我们可以通过一段简单的代码来获得可以使用的颜色的关键对象。

import java.awt.*;
import java.util.*;
import javax.swing.*;

public class UIManagerColorTest {
  public UIManagerColorTest() {
  }

  public static void main(String[] args) {

    UIDefaults uiDefaults = UIManager.getDefaults();
    Enumeration enum = uiDefaults.keys();
    while (enum.hasMoreElements()) {
      Object key = enum.nextElement();
      Object val = uiDefaults.get(key);
 
      //如果是颜色对象,则打印
      try {
        Color color = (Color) val;
        System.out.println("[" + key.toString() + "]");
      }
      catch (ClassCastException cce) {
      }
    }

  }
}
以下是运行程序后的结果:
[DesktopIcon.background]
[windowText]
[activeCaptionBorder]
[InternalFrame.borderColor]
[ScrollBar.highlight]
[ComboBox.disabledBackground]
[Tree.selectionBackground]
[FormattedTextField.inactiveBackground]
[InternalFrame.inactiveTitleBackground]
[Table.selectionForeground]
[Label.foreground]
[ToggleButton.highlight]
[Button.background]
[FormattedTextField.caretForeground]
[RadioButtonMenuItem.selectionForeground]
[ToggleButton.shadow]
[OptionPane.errorDialog.titlePane.shadow]
[EditorPane.background]
[RadioButtonMenuItem.foreground]
[RadioButton.light]
[ToggleButton.focus]
[OptionPane.warningDialog.titlePane.background]
[TextArea.caretForeground]
[Button.highlight]
[CheckBox.focus]
[Separator.foreground]
[TabbedPane.light]
[Tree.selectionBorderColor]
[inactiveCaptionText]
[ToolTip.backgroundInactive]
[PasswordField.caretForeground]
[EditorPane.inactiveForeground]
[ToolTip.foreground]
[ToolBar.dockingBackground]
[ToggleButton.disabledText]
[ToggleButton.background]
[Slider.focus]
[ToolBar.floatingForeground]
[TabbedPane.background]
[ComboBox.foreground]
[ScrollBar.shadow]
[RadioButtonMenuItem.acceleratorForeground]
[InternalFrame.borderDarkShadow]
[PopupMenu.background]
[controlLtHighlight]
[CheckBoxMenuItem.background]
[TextPane.foreground]
[FormattedTextField.background]
[Viewport.background]
[TextField.light]
[MenuItem.background]
[TabbedPane.tabAreaBackground]
[Button.focus]
[inactiveCaptionBorder]
[CheckBoxMenuItem.selectionBackground]
[textInactiveText]
[OptionPane.errorDialog.titlePane.background]
[TextField.inactiveBackground]
[Tree.selectionForeground]
[Menu.selectionBackground]
[Tree.background]
[InternalFrame.inactiveTitleForeground]
[control]
[SplitPane.background]
[textText]
[RadioButton.foreground]
[menu]
[EditorPane.foreground]
[SplitPane.shadow]
[OptionPane.warningDialog.titlePane.foreground]
[TabbedPane.selectHighlight]
[RadioButton.shadow]
[Menu.disabledForeground]
[ToggleButton.light]
[windowBorder]
[OptionPane.questionDialog.border.background]
[ToggleButton.foreground]
[Panel.background]
[TabbedPane.foreground]
[RadioButtonMenuItem.background]
[Table.gridColor]
[ScrollBar.foreground]
[TextPane.caretForeground]
[ToolBar.shadow]
[ToggleButton.select]
[Spinner.foreground]
[FormattedTextField.foreground]
[Viewport.foreground]
[RadioButton.darkShadow]
[infoText]
[MenuItem.acceleratorSelectionForeground]
[MenuItem.foreground]
[MenuBar.background]
[OptionPane.errorDialog.titlePane.foreground]
[Button.light]
[menuText]
[ToggleButton.darkShadow]
[TextPane.background]
[MenuItem.acceleratorForeground]
[TabbedPane.darkShadow]
[CheckBox.background]
[TextField.highlight]
[TextArea.selectionBackground]
[Panel.foreground]
[OptionPane.questionDialog.titlePane.background]
[RadioButton.background]
[TextArea.inactiveForeground]
[Slider.shadow]
[textHighlightText]
[SplitPane.darkShadow]
[RadioButton.select]
[PasswordField.foreground]
[ScrollBar.thumb]
[activeCaptionText]
[MenuBar.foreground]
[OptionPane.warningDialog.titlePane.shadow]
[ScrollBar.background]
[Menu.foreground]
[CheckBox.disabledText]
[Spinner.background]
[TextPane.selectionForeground]
[ComboBox.selectionBackground]
[ScrollBar.track]
[CheckBox.foreground]
[TextField.caretForeground]
[ScrollBar.thumbDarkShadow]
[List.selectionBackground]
[OptionPane.messageForeground]
[TextPane.inactiveForeground]
[Button.shadow]
[Menu.acceleratorForeground]
[TextArea.selectionForeground]
[Menu.acceleratorSelectionForeground]
[TextField.foreground]
[textHighlight]
[OptionPane.questionDialog.titlePane.foreground]
[TabbedPane.selected]
[controlShadow]
[MenuItem.disabledForeground]
[MenuItem.selectionForeground]
[MenuItem.checkIcon]
[ColorChooser.swatchesDefaultRecentColor]
[ToolBar.highlight]
[OptionPane.foreground]
[controlText]
[TextArea.background]
[Tree.line]
[CheckBoxMenuItem.disabledForeground]
[Separator.highlight]
[TextField.darkShadow]
[Tree.textForeground]
[ComboBox.selectionForeground]
[ToolBar.foreground]
[PasswordField.selectionBackground]
[Label.disabledShadow]
[FormattedTextField.selectionBackground]
[PasswordField.background]
[ProgressBar.background]
[List.selectionForeground]
[Checkbox.select]
[MenuBar.highlight]
[ComboBox.buttonShadow]
[Menu.background]
[info]
[TextPane.selectionBackground]
[PasswordField.inactiveBackground]
[controlHighlight]
[ScrollBar.darkShadow]
[SplitPane.highlight]
[TableHeader.background]
[InternalFrame.activeTitleForeground]
[TextArea.foreground]
[TextField.background]
[InternalFrame.borderShadow]
[Button.select]
[MenuItem.selectionBackground]
[TextField.shadow]
[ScrollBar.thumbShadow]
[ScrollBar.thumbHighlight]
[scrollbar]
[window]
[PasswordField.selectionForeground]
[TextField.selectionForeground]
[FormattedTextField.selectionForeground]
[OptionPane.background]
[Separator.shadow]
[ComboBox.buttonBackground]
[Table.focusCellBackground]
[ColorChooser.background]
[ProgressBar.foreground]
[Table.foreground]
[Tree.hash]
[RadioButtonMenuItem.acceleratorSelectionForeground]
[TitledBorder.titleColor]
[inactiveCaption]
[Slider.highlight]
[Tree.textBackground]
[EditorPane.selectionBackground]
[ProgressBar.selectionForeground]
[Button.disabledText]
[ToolBar.background]
[Label.disabledForeground]
[PasswordField.inactiveForeground]
[TabbedPane.shadow]
[TabbedPane.highlight]
[List.background]
[InternalFrame.borderHighlight]
[TableHeader.foreground]
[Slider.background]
[RadioButtonMenuItem.disabledForeground]
[controlDkShadow]
[OptionPane.questionDialog.titlePane.shadow]
[DesktopIcon.foreground]
[InternalFrame.activeTitleBackground]
[CheckBoxMenuItem.acceleratorForeground]
[Desktop.background]
[Table.focusCellForeground]
[ColorChooser.foreground]
[RadioButton.highlight]
[Menu.checkIcon]
[OptionPane.errorDialog.border.background]
[ComboBox.buttonHighlight]
[ToolBar.light]
[EditorPane.selectionForeground]
[ComboBox.disabledForeground]
[ScrollPane.background]
[FormattedTextField.inactiveForeground]
[CheckBoxMenuItem.acceleratorSelectionForeground]
[activeCaption]
[TextField.selectionBackground]
[Button.foreground]
[Table.background]
[RadioButton.disabledText]
[MenuBar.shadow]
[List.foreground]
[text]
[desktop]
[ComboBox.buttonDarkShadow]
[ProgressBar.selectionBackground]
[Slider.foreground]
[ToolBar.dockingForeground]
[ToolTip.foregroundInactive]
[RadioButton.focus]
[Table.selectionBackground]
[ScrollBar.trackHighlight]
[Label.background]
[OptionPane.warningDialog.border.background]
[TabbedPane.focus]
[RadioButtonMenuItem.selectionBackground]
[ToolBar.darkShadow]
[Separator.background]
[PopupMenu.foreground]
[CheckBoxMenuItem.foreground]
[EditorPane.caretForeground]
[Button.darkShadow]
[ToolTip.background]
[CheckBoxMenuItem.selectionForeground]
[ToolBar.floatingBackground]
[ComboBox.background]
[TextField.inactiveForeground]
[ScrollPane.foreground]
[Menu.selectionForeground]
[InternalFrame.borderLight]
[Tree.foreground]
 同样的,我们可以修改上面的源代码以获得其他UIManager的其他获得特性的关键词。
 
参考文档:http://bdn.borland.com/article/0,1410,29991,00.html


 

分享到:
评论

相关推荐

    UIManager_Unity3DUI框架_

    在Unity3D游戏开发中,UIManager是一个至关重要的组件,它负责管理所有的用户界面元素,确保它们正确地显示、更新和交互。UIManager通常作为中央控制器,协调不同UI面板的打开、关闭和层级管理,从而提供流畅的游戏...

    swing UIManager皮肤

    Swing UIManager皮肤是Java Swing库中的一个重要组件,它允许开发者自定义Swing应用程序的外观和感觉。UIManager是Java AWT和Swing图形用户界面(GUI)的一部分,负责管理组件的默认外观和行为,包括颜色、字体、...

    UImanager皮肤包

    【UImanager皮肤包】是一个专门针对Java Swing应用的UI设计资源,它提供了丰富的界面样式,使得开发者可以轻松地改变应用程序的外观和感觉。在Java Swing中,`UIManager`是一个关键组件,它负责管理所有组件的默认...

    UIManager.rar_UIManag_uimanager_visual c

    《UIManager:初学者的游戏界面管理指南》 在游戏开发中,用户界面(UI)的管理是至关重要的,它不仅影响玩家的体验,也影响着游戏的可玩性和易用性。UIManager 是一个专为初学者设计的界面管理工具,它基于 C++ 的...

    UIManager.class

    UIManager.class

    UIManager.cs

    UIManager.cs

    javaSwing皮肤大全.rar

    Look and Feel的切换通常是通过调用`UIManager.setLookAndFeel()`方法完成的,传入对应的LookAndFeel类名即可。 在Java Swing中,有几种内置的LookAndFeel可供选择,如Metal(默认的Java Look and Feel)、Motif...

    Swing 8种主流皮肤

    UIManager.setLookAndFeel(SwingUI.QuaQua); 变量定义 public class SwingUI { static final String JTattoo = "com.jtattoo.plaf.smart.SmartLookAndFeel"; static final String Office2003 = "org.fife.plaf....

    CocosCreator开源游戏开发框架

    包含GameMain、AudioManager、ConfigManager、GameController、GameDataManager、ListenerManager、TimeManager、UIManager、ShaderManager、MathExtension、StringExtension、UIHelp、LogWrap、gulpfile自动化处理...

    Java Gui 皮肤包 

    Java Gui 皮肤包 8个 Java Gui 皮肤包  UIManager.setLookAndFeel("com.birosoft.liquid.LiquidLookAndFeel"); 一般引入jar包中已LookAndFeel结尾的类就行了

    常见的java中文问题的解决方法

    例如,`UIManager.put("Label.font", default_font)`意味着所有`JLabel`组件都将使用这个字体。此外,还设置了标签的前景色为黑色,以确保文本的可读性。 ##### 2. 使用特定字体 如果希望使用特定的中文字体,可以...

    JTatoo Swing LookAndFeel 外观

    有以下十种风格可以设置: javax.swing.UIManager.setLookAndFeel("com.jtattoo.plaf.smart.SmartLookAndFeel"); javax.swing.UIManager.setLookAndFeel("com.jtattoo.plaf.mcwin.McWinLookAndFeel"); ...

    如何设置Java观感

    这段代码首先通过`UIManager.getSystemLookAndFeelClassName()`获取当前操作系统的LookAndFeel类名,然后用`UIManager.setLookAndFeel()`方法设置该LookAndFeel。异常处理部分用于捕获可能出现的错误,因为不是所有...

    java GUI 美化包!!!1

    UIManager.setLookAndFeel(new org.jvnet.substance.skin.SubstanceModerateLookAndFeel()) ; } catch (UnsupportedLookAndFeelException e) { e.printStackTrace(); } FontUIResource f = new ...

    Java美化包3!!!!

    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); Font font = new Font("SimSun", 0, 12); Enumeration keys = UIManager.getLookAndFeelDefaults().keys(); while (keys....

    Java制作多种风格的窗口界面一例.rar

      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); //设置界面样式  }  else if (type.equals("Motif")) {  UIManager.setLookAndFeel(...

    手机管理系统源代码(虽然简单仅供大家参考)

    import javax.swing.UIManager; import javax.swing.border.EtchedBorder; //import com.qhit.LandAppend; //import com.qhit.PasswordAmend; import Kehuxinxi.Kehumain; import Shouhoumain.Main; import ...

    Swing 经典文章

    以上代码段通过修改`UIManager`中的各种组件的字体属性,实现了Swing应用程序中所有相关组件的字体大小统一调整,从而提高了中文显示的效果。 #### 五、结语 通过本文的介绍,我们了解了如何在Swing应用程序中解决...

    substanceJAR包使用

    可以通过调用`UIManager.setLookAndFeel()`方法来实现。该方法接受一个LookAndFeel对象作为参数,通过创建不同类型的LookAndFeel对象,就可以轻松地改变应用程序的外观风格。例如: ```java UIManager.setLookAnd...

    期末数据库课程设计基于Java+MySQL+JDBC+JavaSwing的简易图书进销管理系统源码+数据库

    期末数据库课程设计基于Java+MySQL+JDBC+JavaSwing的简易图书进销管理... UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) { // TODO: handle exception }

Global site tag (gtag.js) - Google Analytics