浅谈Swing中的Metal观感

开发 后端
本文介绍Swing中的Metal观感,以及介绍Windows 和Mac 的观感包只与Windows和Mac版本的java运行环境一起发布。

今天学习了怎样切换Swing的Metal观感,感觉还不错                                                                     

在默认的情况下,Swing 程序使用Metal观感,可以采用两种方法改变观感。

***种方式是在Java的安装的子目录下jre / lib有一个文件swing.properties。在这个文件中,将属性Swing.defaultlaf设置为所希望的观感类名。例如:

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

ps:***中方式我怎么也没找到那个swing.properties,不知大家的如何?

注意,Metal观感位于Javax.swing包中。其他的观感包位于com.sun.java包中,并且不是在每个Java实现中都提供。现在,鉴于版权的原因,Windows 和Mac 的观感包只与Windows和Mac版本的java运行环境一起发布。

提示:下面给出一个测试很有帮助的的建议。由于属性文件中的以#字符开始的行被忽略,所以,可以在swing.properties文件中提供几种观感,并同过增删#字符来切换选择:
◆swing.defaultlaf = javax.swing.plaf.metal.MetalLookAndFeel
◆swing.defaultlaf = com.sun.java.swing.plaf.motif.MotifLookAndFeel
◆swing.defaultlaf = com.sun.java.swing.plaf.windows.WindowsLookAndFeel

采用这种方式开启观感时必须重新启动程序。Swing程序只在启动时读取一次swing.properties文件。

第二种方式是动态地改变观感。这需要调用静态的UIManager.setLookAndFeel方法,并提供所想要的观感类名,然后再调用静态方法SwingUtilities.updateComponentTreeUI来刷新全部的组件集。这里需要向这个方法提供一个组件,并由此找到其他的所有组件。当UIManager.setLookAndFeel方法没有找到所希望的观感或在加载过程中出现错误时,将会抛出异常。

下面是一个例子,他显示了如何在程序中切换观感的方式。在这个程序中,这有点需要注意的地方。在内部动作监听器类的actionPerformed方法中,需要将一个外部的PalfPanel类的this引用传递给updateComponentTreeUI方法。

【编辑推荐】

  1. 浅谈不论是AWT还是Swing模式
  2. 全面比较Swing与SWT
  3. Swing程序中调用JavaFX代码
  4. 概述Swing大多数控件
  5. 浅谈Swing中的Look&Feel
责任编辑:佚名 来源: 腾讯科技
相关推荐

2009-07-14 17:01:29

Look&FeelSwing

2009-07-17 16:49:18

lookandfeelSwing

2009-07-16 10:26:49

渲染器接口Swing

2009-07-16 16:01:55

EventQueue

2009-07-14 18:28:58

Swing入门

2009-07-15 13:06:38

Swing组件

2009-07-15 14:29:24

构造JListSwing

2009-07-16 12:58:50

Swing控件

2009-07-17 12:44:01

NetBeans开发S

2009-07-10 17:20:38

Swing构件AWT构件

2009-07-10 11:07:18

Swing和SWT

2009-07-15 16:29:41

Swing绘画

2009-07-10 13:09:53

.Net与Java S

2009-07-16 16:23:59

Swing线程

2009-07-14 14:50:00

JOptionPane

2009-07-14 11:08:42

WebRendererSwing应用程序

2009-07-17 15:34:37

Java Swing连接数据库

2009-07-10 11:31:45

Swing支持透明和不规则窗口

2009-07-16 08:53:03

Swing任务Swing线程

2009-07-10 10:19:57

JFormattedTSwing
点赞
收藏

51CTO技术栈公众号