java 设置窗口观感_SWing 设置观感(Look And Feel)(转)

Swing通过以下方式实现观感:将JComponent分离成两个独立的类,一个JComponent子类,一个ComponentUI子类。ComponentUI子类在swing中有很多叫法:"the UI," "component UI," "UI delegate," "look and feel delegate"。

每个L&F都必须为ComponentUI提供具体实现的子类。

1、可获得的L&F

(1)CrossPlatformLookAndFeel:Java l&f,即在各个平台上的效果相同,这是默认的观感,是JAVA API javax.swing.plaf.metal的一部分。

(2)SystemLookAndFeel:观感依赖于本地系统。

(3)Synth:使用XML自定义观感。

(4)Multiplexing:同时采用多个观感。

SystemL&F 在以下包中:

com.sun.java.swing.plaf.gtk.GTKLookAndFeel

com.sun.java.swing.plaf.motif.MotifLookAndFeel

com.sun.java.swing.plaf.windows.WindowsLookAndFeel

2、通过程序设置观感

设置观感最好在应用的第一步完成,通过UIManager来设置L&F,

UIManager.setLookAndFeel(

UIManager.getCrossPlatformLookAndFeelClassName());

UIManager.setLookAndFeel(

UIManager.getSystemLookAndFeelClassName());

UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");

UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");

3、通过命令行设置观感

java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel MyApp

java -Dswing.defaultlaf=com.sun.java.swing.plaf.windows.WindowsLookAndFeel MyApp

4、通过swing.properties 设置观感

# Swing properties

swing.defaultlaf=com.sun.java.swing.plaf.windows.WindowsLookAndFeel

5、如何选择观感

(1)程序通过setL&F方法显示设置观感;

(2)如无则使用swing.defaultlaf定义的观感;如同时在命令行中设置观感,命令行优先;

(3)最后,使用JAVA L&F。

6、修改观感

但应用GUI已经显示后,仍然可以修改观感。

UIManager.setLookAndFeel(lnfName);

SwingUtilities.updateComponentTreeUI(frame);

frame.pack();

7、主题(Theme)

主题可以用来快速改变组件上文字的风格和颜色。每个L&F都有自己独立的主题:

if (LOOKANDFEEL.equals("Metal")) {

if (THEME.equals("DefaultMetal"))

MetalLookAndFeel.setCurrentTheme(new DefaultMetalTheme());

else if (THEME.equals("Ocean"))

MetalLookAndFeel.setCurrentTheme(new OceanTheme());

else

MetalLookAndFeel.setCurrentTheme(new TestTheme());

UIManager.setLookAndFeel(new MetalLookAndFeel());

}

posted on 2009-12-08 14:08 晓洛 阅读(2861) 评论(0)  编辑 收藏 引用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值