Swing LookandFeel制作的总结

加载皮肤

 UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");//  Java默认风格

 

MetalLookAndFeel.initClassDefaults方法设置个中组件的风格类

Object[] arrayOfObject = { 
"ButtonUI", "javax.swing.plaf.metal.MetalButtonUI",
"CheckBoxUI", "javax.swing.plaf.metal.MetalCheckBoxUI", 
"ComboBoxUI", "javax.swing.plaf.metal.MetalComboBoxUI", 
"DesktopIconUI", "javax.swing.plaf.metal.MetalDesktopIconUI", 
"FileChooserUI", "javax.swing.plaf.metal.MetalFileChooserUI", 
"InternalFrameUI", "javax.swing.plaf.metal.MetalInternalFrameUI",
"LabelUI", "javax.swing.plaf.metal.MetalLabelUI",
"PopupMenuSeparatorUI", "javax.swing.plaf.metal.MetalPopupMenuSeparatorUI",
"ProgressBarUI", "javax.swing.plaf.metal.MetalProgressBarUI",
"RadioButtonUI", "javax.swing.plaf.metal.MetalRadioButtonUI",
"ScrollBarUI", "javax.swing.plaf.metal.MetalScrollBarUI",
"ScrollPaneUI", "javax.swing.plaf.metal.MetalScrollPaneUI",
"SeparatorUI", "javax.swing.plaf.metal.MetalSeparatorUI",
"SliderUI", "javax.swing.plaf.metal.MetalSliderUI",
"SplitPaneUI", "javax.swing.plaf.metal.MetalSplitPaneUI",
"TabbedPaneUI", "javax.swing.plaf.metal.MetalTabbedPaneUI",
"TextFieldUI", "javax.swing.plaf.metal.MetalTextFieldUI",
"ToggleButtonUI", "javax.swing.plaf.metal.MetalToggleButtonUI",
"ToolBarUI", "javax.swing.plaf.metal.MetalToolBarUI",
"ToolTipUI", "javax.swing.plaf.metal.MetalToolTipUI",
"TreeUI", "javax.swing.plaf.metal.MetalTreeUI",
"RootPaneUI", "javax.swing.plaf.metal.MetalRootPaneUI"
};

部分组件风格上面没有(如JPanel),仍继承父类的风格(BasicLookAndFeel)。

看看BasicLookAndFeel.initClassDefaults方法:

 Object[] arrayOfObject = {
"ButtonUI", "javax.swing.plaf.basic.BasicButtonUI",
"CheckBoxUI", "javax.swing.plaf.basic.BasicCheckBoxUI",
"ColorChooserUI", "javax.swing.plaf.basic.BasicColorChooserUI",
"FormattedTextFieldUI", "javax.swing.plaf.basic.BasicFormattedTextFieldUI",
"MenuBarUI", "javax.swing.plaf.basic.BasicMenuBarUI",
"MenuUI", "javax.swing.plaf.basic.BasicMenuUI",
"MenuItemUI", "javax.swing.plaf.basic.BasicMenuItemUI",
"CheckBoxMenuItemUI", "javax.swing.plaf.basic.BasicCheckBoxMenuItemUI",
"RadioButtonMenuItemUI", "javax.swing.plaf.basic.BasicRadioButtonMenuItemUI",
"RadioButtonUI", "javax.swing.plaf.basic.BasicRadioButtonUI",
"ToggleButtonUI", "javax.swing.plaf.basic.BasicToggleButtonUI",
"PopupMenuUI", "javax.swing.plaf.basic.BasicPopupMenuUI",
"ProgressBarUI", "javax.swing.plaf.basic.BasicProgressBarUI",
"ScrollBarUI", "javax.swing.plaf.basic.BasicScrollBarUI",
"ScrollPaneUI", "javax.swing.plaf.basic.BasicScrollPaneUI",
"SplitPaneUI", "javax.swing.plaf.basic.BasicSplitPaneUI",
"SliderUI", "javax.swing.plaf.basic.BasicSliderUI",
"SeparatorUI", "javax.swing.plaf.basic.BasicSeparatorUI",
"SpinnerUI", "javax.swing.plaf.basic.BasicSpinnerUI",
"ToolBarSeparatorUI", "javax.swing.plaf.basic.BasicToolBarSeparatorUI", 
"PopupMenuSeparatorUI", "javax.swing.plaf.basic.BasicPopupMenuSeparatorUI",
"TabbedPaneUI", "javax.swing.plaf.basic.BasicTabbedPaneUI", 
"TextAreaUI", "javax.swing.plaf.basic.BasicTextAreaUI", 
"TextFieldUI", "javax.swing.plaf.basic.BasicTextFieldUI",
"PasswordFieldUI", "javax.swing.plaf.basic.BasicPasswordFieldUI",
"TextPaneUI", "javax.swing.plaf.basic.BasicTextPaneUI", 
"EditorPaneUI", "javax.swing.plaf.basic.BasicEditorPaneUI",
"TreeUI", "javax.swing.plaf.basic.BasicTreeUI", 
"LabelUI", "javax.swing.plaf.basic.BasicLabelUI", 
"ListUI", "javax.swing.plaf.basic.BasicListUI", 
"ToolBarUI", "javax.swing.plaf.basic.BasicToolBarUI", 
"ToolTipUI", "javax.swing.plaf.basic.BasicToolTipUI", 
"ComboBoxUI", "javax.swing.plaf.basic.BasicComboBoxUI",
"TableUI", "javax.swing.plaf.basic.BasicTableUI", 
"TableHeaderUI", "javax.swing.plaf.basic.BasicTableHeaderUI",
"InternalFrameUI", "javax.swing.plaf.basic.BasicInternalFrameUI", 
"DesktopPaneUI", "javax.swing.plaf.basic.BasicDesktopPaneUI", 
"DesktopIconUI", "javax.swing.plaf.basic.BasicDesktopIconUI", 
"OptionPaneUI", "javax.swing.plaf.basic.BasicOptionPaneUI", 
"PanelUI", "javax.swing.plaf.basic.BasicPanelUI", 
"ViewportUI", "javax.swing.plaf.basic.BasicViewportUI", 
"RootPaneUI", "javax.swing.plaf.basic.BasicRootPaneUI" 
};

再瞧瞧PanelUI的风格javax.swing.plaf.basic.BasicPanelUI

LookAndFeel中方法太多,看个简单的

 

 

皮肤风格已加载如LookAndFeel,现在只需要组件应用。


看看updateUI()

  public void updateUI()
 {
  setUI((PanelUI)UIManager.getUI(this));
 }

 再看看setUI

public void setUI(PanelUI paramPanelUI)
  {
    super.setUI(paramPanelUI);
  }

最后看看super(即JComponent)的setUI方法


好了,皮肤流程over。

终于在那个BasicLookAndFeel中找到了
Panel.background--->Color localColor1 --->control--->"#C0C0C0"
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值