java程序的界面编程详解

在Java中可以为程序自定义程序界面选择Windows、Unix、Java或Macintosh外观。甚至可以在程序运行时让用户自由的选择外观。

UIManager和SwingUtilities类

UIManager类保留了当前外观的信息,而SwingUtilities提供了几种实用的方法,尤其是UIManager类提供的静态方法setLookAndFeel。

一般的“界面”类如下:

javax.swing.plaf.metal.MetalLookAndFeel;

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

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

可以来创建以下界面:

1:Java界面

2:Unix界面

3:与操作系统和谐的界面

4:跨平台的界面

定义Java的界面:

try

{

String style = "javax.swing.plaf.metal.MetalLookAndFeel";

UIManager.setLookAndFeel(style);

}

catch (Exception e)

{

System.err.println("Exception: " + e);

}

定义与Unix界面:

try

{

String style = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";

UIManager.setLookAndFeel(style);

}

catch (Exception e)

{

System.err.println("Exception: " + e);

}

定义与操作系统和谐的界面:

try

{

String style = UIManager.getSystemLookAndFeelClassName();

UIManager.setLookAndFeel(style);

}

catch (Exception e)

{

System.err.println("Exception: "  + e);

}

定义类似跨平台的界面:

try

{

String style = UIManager.getCrossPlatformLookAndFeelClassName();

UIManager.setLookAndFeel(style);

}

catch (Exception e)

{

System.err.println("Exception: " + e);

}

下面是一段完整的换界面的代码:

package WindowStyle; import javax.swing.*; import java.awt.FlowLayout; import java.awt.Container; import java.awt.event.*; public class windowstyle extends JFrame implements ActionListener { private JButton windLook = new JButton("Windows"); private JButton unixLook = new JButton("Unix"); private JButton javaLook = new JButton("Java"); private JLabel label= new JLabel("FlySky Young"); private class WindowCloser extends WindowAdapter { public void windowClosing(WindowEvent we) { System.exit(0); } } public windowstyle() { super("JFrame with Buttons"); Container content = getContentPane(); content.setLayout(new FlowLayout()); content.add(label); content.add(windLook); content.add(unixLook); content.add(javaLook); //添加按钮监听事件 windLook.addActionListener(this); unixLook.addActionListener(this); javaLook.addActionListener(this); validate(); pack(); setVisible(true); } public void actionPerformed(ActionEvent ae) { String style = "javax.swing.plaf.metal.MetalLookAndFeel"; if (ae.getSource() == windLook) { style = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"; } else if (ae.getSource() == unixLook) { style = "com.sun.java.swing.plaf.motif.MotifLookAndFeel"; } try { UIManager.setLookAndFeel(style); SwingUtilities.updateComponentTreeUI(this); pack(); } catch (Exception e) { System.err.println("Exception: " + e); } } public static void main(String args[]) { windowstyle style = new windowstyle(); } }

转载于:https://www.cnblogs.com/JPAORM/archive/2010/11/02/2509919.html

java程序的界面编程详解相关推荐

  1. Java 1.8 函数式编程详解

    Java 1.8 函数式编程详解 文章目录 Java 1.8 函数式编程详解 一. 概述 1.1 java 8 新特性: 二. 函数式接口 2.1 函数式接口概述 2.2 Lambda表达式概述 2. ...

  2. Java程序启动参数 -D详解

    概述 java程序启动参数 -D是用来做什么的呢?去查询了一下官方解释: Set a system property value. If value is a string that contains ...

  3. 《Java和Android开发实战详解》——2.2节构建Java应用程序

    本节书摘来自异步社区<Java和Android开发实战详解>一书中的第2章,第2.2节构建Java应用程序,作者 陈会安,更多章节内容可以访问云栖社区"异步社区"公众号 ...

  4. Java高并发编程详解系列-Java线程入门

    根据自己学的知识加上从各个网站上收集的资料分享一下关于java高并发编程的知识点.对于代码示例会以Maven工程的形式分享到个人的GitHub上面.   首先介绍一下这个系列的东西是什么,这个系列自己 ...

  5. [强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)...

    [强烈推荐]ORACLE PL/SQL编程详解之七: 程序包的创建与应用(聪明在于学习,天才在于积累!) --通过知识共享树立个人品牌.   继上七篇:            [推荐]ORACLE P ...

  6. java IO编程详解

    java IO编程详解 一.Socket 1. Sock概述 Socket,套接字就是两台主机之间逻辑连接的端点.TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP协议是应用层协议 ...

  7. Java JUC并发编程详解

    Java JUC并发编程详解 1. JUC概述 1.1 JUC简介 1.2 进程与线程 1.2 并发与并行 1.3 用户线程和守护线程 2. Lock接口 2.1 Synchronized 2.2 什 ...

  8. 《Java和Android开发实战详解》——2.5节良好的Java程序代码编写风格

    本节书摘来自异步社区<Java和Android开发实战详解>一书中的第2章,第2.5节良好的Java程序代码编写风格,作者 陈会安,更多章节内容可以访问云栖社区"异步社区&quo ...

  9. 汽车理论课后习题matlab程序,汽车理论课后作业matlab编程详解(带注释).doc

    汽车理论课后作业matlab编程详解(带注释) 1.3matlab程序: (1)%驱动力-行驶阻力平衡图%货车相关参数. m=3880;g=9.8;nmin=600;nmax=4000;G=m*g;i ...

最新文章

  1. pgsql,mysql case when
  2. 利用PermutationImportance挑选变量
  3. 添加日志文件组与日志文件成员
  4. Redis数据库 安装
  5. 千灯腾碧人潮涌,蓬勃“雨花”气如虹
  6. 牛客网剑指offer编程实践51-66题
  7. 【Android】3.21 示例21—兴趣点收藏功能
  8. matlab实现移位寄存器,Matlab移位寄存器的实现
  9. eclipse如何装php插件,Eclipse PHP插件(PHPEclipse)安装与配置图解
  10. oracle 定时任务 每天执行,Oracle定时任务(定时执行某个SQL语句)
  11. python里的url是什么意思_URI和URL的简介
  12. python装饰器详解
  13. 上海万科地产档案室—智慧管理项目
  14. 如何查看XP系统的密匙
  15. ubuntu16.04下安装为知笔记
  16. 【机器学习百科全书目录】PRML ESL MLAPP 西瓜书 花书 RLAI 统计学习方法 蒲公英书
  17. 【华为提前批】笔试 测评 面试 全流程(结构与材料工程师)
  18. 自定义函数fac1用递推方法求n!,自定义函数fac2用递归方法求n!,主函数中输入整数n(0≦n≦10)后,分别调用函数fac1和函数fac2求n!,最后输出调用的结果值进行对比。
  19. 在线 像素画 工具 PX-Art
  20. TSC TTP244Pro 标签打印机打印不走纸

热门文章

  1. 20162305《程序设计与数据结构》第1周学习总结
  2. cmd下运行java文件时,找不到或无法加载主类的解决方法
  3. Scalable Web Architectures: Common Patterns and Approaches
  4. emacs haskell mode 在windows 下的配置
  5. 【Java从0到架构师】RocketMQ 使用 - 发送消息、接收消息、特殊消息
  6. windows下数据库mysql8.0安装
  7. 使命召唤16计算机内存不足,使命召唤16出现一个问题怎么解决
  8. map/multimap容器
  9. OkHttp RouteSelector代理解析
  10. go mysql es 不要分词_ElasticSearch踩坑记录-Go语言中文社区