Java 改变观感
来源:互联网 发布:阿里短信平台 php 编辑:程序博客网 时间:2024/05/21 09:35
在默认情况下,Swing程序使用Metal观感,可以采用两种方式改变观感。
第一种方式是在Java安装的子目录jre/lib下有一个文件swing.properties。在这个文件中,将属性swing.defaultlaf设置为所希望的观感类名。例如,swing.defaultlaf=com.sun.java.swing.plaf.motif.MotifLookAndFeel
注意,Metal观感位于javax.swing包中。其他的观感包位于com.sun.java包中,并且不是在每个Java实现中都提供。现在,鉴于版权的原因,Windows和Mac的观感包只与Windows和Mac版本的Java运行时环境一起发布。
提示:由于属性文件中以#字符开始的行被忽略,所以,可以在swing.properties文件中提供几种观感选择,并通过增删#字符来切换选择
采用这种方式开启观感时必须重新启动程序。Swring程序只在启动时读取一次swing.properties文件。
第二种方式是动态地改变观感。这需要调用静态的UIManager.setLookAndFeel方法,并提供所想要的观感类名,然后再调用静态方法SwingUtilities.updateComponetTreeUI来刷新全部的组件集。这里需要向这个方法提供一个组件,并由此找到其他的所有组件。当UIManager.setLookAndFeel方法没有找到所希望的观感或在加载过程中出现错误时,将会抛出异常。
完整示例,演示如何切换观感方式:
import java.awt.EventQueue;import java.awt.event.*;import javax.swing.*;public class PlafTest { public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { @Override public void run() { PlafFrame frame = new PlafFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }); }}final class PlafFrame extends JFrame { public PlafFrame() { setTitle("PlafTest"); setSize(DEFAULT_WIDTH, DEFALUT_HEIGHT); buttonPanel = new JPanel(); UIManager.LookAndFeelInfo[] infos = UIManager.getInstalledLookAndFeels(); for (UIManager.LookAndFeelInfo info : infos) { makeButton(info.getName() + "-" + info.getClassName(), info.getClassName()); } add(buttonPanel); } void makeButton(String name, final String plafName) { // add button to panel JButton button = new JButton(name); buttonPanel.add(button); // set button action button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { // button action: switch to the new look and feel try { UIManager.setLookAndFeel(plafName); SwingUtilities.updateComponentTreeUI(PlafFrame.this); } catch (Exception e) { e.printStackTrace(); } } }); } private JPanel buttonPanel; public static final int DEFAULT_WIDTH = 300; public static final int DEFALUT_HEIGHT = 200;}
演示结果:
Metal:
Nimbus:
CDE/Motif:
Windows:
Windows Classic:
- Java 改变观感
- Java改变程序观感
- Java应用swing改变观感
- Java应用swing改变观感(补充)【转】
- Java:观感改变以及两个JRE文件区别
- 改变应用程序的观感
- JAVA观感器
- Java Swing 变换观感小程序 Metal观感 Nimbus观感 Windows观感 Java核心技术
- Swing 改变观感 UIManager.setLookAndFeel UIManager.update.updateLookAndFeel(..)
- 基于AWT、Swing的GUI程序 - 改变观感
- JAVA 如何更新容器内组件观感
- 第二十八篇:JAVA观感器
- 《功夫》观感
- 圆明园观感
- 51观感
- 2012 观感
- lua观感
- 设置观感
- 更新線別時段排班 SQL
- IEnumerator和IEnumerable区别
- 一些关于android SD卡的信息
- C#中==和equals的区别
- SQL存储过程的简单应用
- Java 改变观感
- 走好职场那点路-经典心得
- 生成函数(待补充……)
- su和sudo的区别与使用
- Mediator Design Pattern
- Neat Stuff to Do in List Controls Using Custom Draw
- 动态编译,预编译,一些特殊的编译
- huicpc的模板
- MyEclipse下的Debug调试