博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何设置Java桌面程序界面外观
阅读量:6574 次
发布时间:2019-06-24

本文共 2910 字,大约阅读时间需要 9 分钟。

如何设置Java桌面程序界面外观

(How to Set the Look and Feel)

 

1. 使用UIManager.setLookAndFeel通过编程来指定界面外观.

示例代码如下:

import javax.swing.*;import java.awt.*;public class Hello extends JFrame {        public Hello() {        setPreferredSize(new Dimension(600, 400));        pack();        setDefaultCloseOperation(EXIT_ON_CLOSE);        setVisible(true);    }    public static void main(String[] args) {        try {            String lookAndFeel =                 UIManager.getCrossPlatformLookAndFeelClassName();            UIManager.setLookAndFeel(lookAndFeel);        } catch (Exception e) {}                new Hello();    }}

  

方法setLookAndFeel中的参数是类LookAndFeel的子类的全称(fully qualified name). 要设置Java界面外观(Java Look and Feel), 我们使用getCrossPlatformLookAndFeelClassName方法. 如果你想设置为程序所运行的平台的界面外观, 可以使用getSystemLookAndFeelClassName方法. 要设置特殊的UI, 你可以使用具体的类名. 例如你想设置Windows界面外观, 可以使用下面的代码:

UIManager.setLookAndFeel(        "com.sun.java.swing.plaf.windows.WindowsLookAndFeel");

  

 

下面是方法setLookAndFeel的一些参数:

UIManager.getCrossPlatformLookAndFeelClassName()

--Java的界面外观, 所有平台均一致.
UIManager.getSystemLookAndFeelClassName()
--指定为当前平台的界面外观.在32位Windows平台, 为Windows界面外观; 在Mac OS平台, 为Mac OS界面外观; 在Sun平台, 为CDE/Motif界面外观.
"javax.swing.plaf.metal.MetalLookAndFeel"
--指定为Java的界面外观, 也就是方法UIManager.getCrossPlatformLookAndFeelClassName()的返回值.
"com.sun.java.swing.plaf.windows.WindowsLookAndFeel"
--指定为Windows的界面外观, 仅在Windows平台起作用.
"com.sun.java.swing.plaf.motif.MotifLookAndFeel"
--指定为CDE/Motif的界面外观, 可以在所有平台起作用.
"javax.swing.plaf.mac.MacLookAndFeel"
--指定为Mac OS的界面外观, 仅在Mac OS平台起作用.

2. UI Manager如何选择界面外观?

1) 如果程序在创建所有组件之前设置了界面外观(Look and feel), UI manager则尝试创建指定界面外观类的实例(an instance of the specified look-and-feel class), 如果成功, 所有的组件均使用这种界面外观.

2) 如果程序没有成功设置界面外观, 则UI manager在创建第一个组成的UI之间, 检测用户是否在名为'swing.properties'的文件中指定了界面外观. 在Java版本的lib目录下搜索这个文件. 例如, 如果你的Java解释器(Java interpreter)在javaHomeDirectory\bin目录下, 则'swing.properties'文件(如果存在)应该在javaHomeDirectory\lib目录下. 如果用户指定了一个界面外观(译者注:即文件'swing.properties'中的配置), 则UI manager再次尝试实例化界面外观类. 下面是一个'swing.properties'文件内容的例子:

# Swing propertiesswing.defaultlaf=com.sun.java.swing.plaf.motif.MotifLookAndFeel

  

 

3) 如果程序或用户都没有成功设置界面外观, 则程序使用Java的界面外观(译者注:即"javax.swing.plaf.metal.MetalLookAndFeel").

3. 启动后, 改变界面外观

即使程序的GUI显示出来后, 也可以通过setLookAndFeel方法来改变界面外观. 要使已有的组件显示新的界面外观, 在每个顶层容器(top-level container)(译者注:顶层容器, 例如在Swing中一般为JFrame, JApplet, JDialog或其子类的对象)调用类SwingUtilities的updateComponentTreeUI方法, 然后你可能希望重置每个顶层容器的大小来适应它所包含的组件的新大小, 例如:

UIManager.setLookAndFeel(lnfName);SwingUtilities.updateComponentTreeUI(frame);frame.pack();

  

 

4.采用第三方皮肤

//中文化和加载皮肤try {  UIManager.setLookAndFeel("com.seaglasslookandfeel.SeaGlassLookAndFeel");  UIManager.getLookAndFeelDefaults().put("defaultFont", new Font("微软雅黑",Font.PLAIN,12));} catch (Exception e) {  e.printStackTrace();}

  

 

 

整理的第三方皮肤地址:

Seaglass :    访问密码 cfd4

Substance :  访问密码 c57b

Smoothmetal:   访问密码 08ff

 

 

转载于:https://www.cnblogs.com/raikouissen/p/3228838.html

你可能感兴趣的文章
Reboot运维开发Python-03
查看>>
Javascript中括号“[]”的多义性
查看>>
.NET中异常类(Exception)
查看>>
Python windows serial
查看>>
吃货联盟
查看>>
redis的操作
查看>>
SDL1.3(C语言)程序移植LINUX。。。
查看>>
活动选择问题 贪心
查看>>
我的第一篇博客
查看>>
页面前端的水有多深?再议页面开发
查看>>
我的firefox插件开发历程
查看>>
我很高兴找了一张可以说明:为什么软件开发那么困难的图
查看>>
iOS:翻页效果
查看>>
(原创)Python文件与文件系统系列(5)——stat模块
查看>>
【ABAP】Cross client master/business data transfer guide(ALE &I Doc)
查看>>
一个中型项目:本地校园App
查看>>
BZOJ2809:[Apio2012]dispatching——题解
查看>>
WEBSHELL
查看>>
[转] 残差网络
查看>>
个人作业——软件工程实践总结作业
查看>>