java程序的界面编程详解
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程序的界面编程详解相关推荐
- Java 1.8 函数式编程详解
Java 1.8 函数式编程详解 文章目录 Java 1.8 函数式编程详解 一. 概述 1.1 java 8 新特性: 二. 函数式接口 2.1 函数式接口概述 2.2 Lambda表达式概述 2. ...
- Java程序启动参数 -D详解
概述 java程序启动参数 -D是用来做什么的呢?去查询了一下官方解释: Set a system property value. If value is a string that contains ...
- 《Java和Android开发实战详解》——2.2节构建Java应用程序
本节书摘来自异步社区<Java和Android开发实战详解>一书中的第2章,第2.2节构建Java应用程序,作者 陈会安,更多章节内容可以访问云栖社区"异步社区"公众号 ...
- Java高并发编程详解系列-Java线程入门
根据自己学的知识加上从各个网站上收集的资料分享一下关于java高并发编程的知识点.对于代码示例会以Maven工程的形式分享到个人的GitHub上面. 首先介绍一下这个系列的东西是什么,这个系列自己 ...
- [强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)...
[强烈推荐]ORACLE PL/SQL编程详解之七: 程序包的创建与应用(聪明在于学习,天才在于积累!) --通过知识共享树立个人品牌. 继上七篇: [推荐]ORACLE P ...
- java IO编程详解
java IO编程详解 一.Socket 1. Sock概述 Socket,套接字就是两台主机之间逻辑连接的端点.TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP协议是应用层协议 ...
- Java JUC并发编程详解
Java JUC并发编程详解 1. JUC概述 1.1 JUC简介 1.2 进程与线程 1.2 并发与并行 1.3 用户线程和守护线程 2. Lock接口 2.1 Synchronized 2.2 什 ...
- 《Java和Android开发实战详解》——2.5节良好的Java程序代码编写风格
本节书摘来自异步社区<Java和Android开发实战详解>一书中的第2章,第2.5节良好的Java程序代码编写风格,作者 陈会安,更多章节内容可以访问云栖社区"异步社区&quo ...
- 汽车理论课后习题matlab程序,汽车理论课后作业matlab编程详解(带注释).doc
汽车理论课后作业matlab编程详解(带注释) 1.3matlab程序: (1)%驱动力-行驶阻力平衡图%货车相关参数. m=3880;g=9.8;nmin=600;nmax=4000;G=m*g;i ...
最新文章
- pgsql,mysql case when
- 利用PermutationImportance挑选变量
- 添加日志文件组与日志文件成员
- Redis数据库 安装
- 千灯腾碧人潮涌,蓬勃“雨花”气如虹
- 牛客网剑指offer编程实践51-66题
- 【Android】3.21 示例21—兴趣点收藏功能
- matlab实现移位寄存器,Matlab移位寄存器的实现
- eclipse如何装php插件,Eclipse PHP插件(PHPEclipse)安装与配置图解
- oracle 定时任务 每天执行,Oracle定时任务(定时执行某个SQL语句)
- python里的url是什么意思_URI和URL的简介
- python装饰器详解
- 上海万科地产档案室—智慧管理项目
- 如何查看XP系统的密匙
- ubuntu16.04下安装为知笔记
- 【机器学习百科全书目录】PRML ESL MLAPP 西瓜书 花书 RLAI 统计学习方法 蒲公英书
- 【华为提前批】笔试 测评 面试 全流程(结构与材料工程师)
- 自定义函数fac1用递推方法求n!,自定义函数fac2用递归方法求n!,主函数中输入整数n(0≦n≦10)后,分别调用函数fac1和函数fac2求n!,最后输出调用的结果值进行对比。
- 在线 像素画 工具 PX-Art
- TSC TTP244Pro 标签打印机打印不走纸
热门文章
- 20162305《程序设计与数据结构》第1周学习总结
- cmd下运行java文件时,找不到或无法加载主类的解决方法
- Scalable Web Architectures: Common Patterns and Approaches
- emacs haskell mode 在windows 下的配置
- 【Java从0到架构师】RocketMQ 使用 - 发送消息、接收消息、特殊消息
- windows下数据库mysql8.0安装
- 使命召唤16计算机内存不足,使命召唤16出现一个问题怎么解决
- map/multimap容器
- OkHttp RouteSelector代理解析
- go mysql es 不要分词_ElasticSearch踩坑记录-Go语言中文社区