使用LookAndFeel为界面更换皮肤
----------------siwuxie095
在 Windows 系统中,默认的 Java 运行环境(JRE)会为当前的窗体程序
指定一个
LookAndFeel(默认使用 <system>,仅应用于 预览)
「这里的 <system> 即 Windows」
共有 5 种 LookAndFeel:
Metal、Nimbus、CDE/Motif、Windows、Windows Classic
「Nimbus 在 Java 6 Update 10 及以后才有,当前为 JDK 8u111」
创建一个 JFrame 窗体,如下:
如果点击
预览
按钮:
此时,使用的是
Windows 自带的样式(这里是 win 10 系统):
「在
预览
中,是原生的
Windows 窗体和控件」
但如果点击 运行 按钮,样式就发生了变化(Metal 样式):
显然,WindowBuilder 仅仅为 预览 应用了默认的 LookAndFeel
「除了苹果系统,其他的系统中,只要
Java 运行环境中有窗体打开(运行),
默认使用的都是 Metal 这个 LookAndFeel」
需要通过代码来设定窗体的样式,如:Nimbus
运行程序:
5 种 LookAndFeel 的设定方法:
也可以使用第三方的 LookAndFeel 的库:
https://github.com/search?utf8=%E2%9C%93&q=LookAndFeel&type=
按照一般的第三方库文件的使用方法来使用即可
LookAndFeel 也可以针对不同形式的窗体分别设定
如:在当前
JFrame 的 LookAndFeel 生效前创建另一个 JDialog
如果为当前的程序指定了
LookAndFeel,所有控件都是按照 LookAndFeel
指定的方法来绘制的,不管迁移到任何系统上,外观和样式都不会发生改变,
这也是
Java 跨平台特性的体现
【made by siwuxie095】
使用LookAndFeel为界面更换皮肤的更多相关文章
- WPF通过DynamicResource实现给界面动态更换皮肤
在我们的程序中有时候需要去实现动态更换皮肤的效果,从而完成一些个性化的设置,那么我们究竟怎样去实现动态换皮肤的效果呢?那么我们经常用到的就是设置不同的Style,并且在主程序的xaml文件中通过Dyn ...
- 为Visual Studio更换皮肤和背景图
最近在博客上别人在老早之前就有加了背景图,想想怎么能这么out,于是乎,百度一下,能否知道? 咳咳,资源还是有滴!可惜都是比较旧的跟新版本的配置方法可能有点不一样, 可能会有很多人会觉得不适应,不过没 ...
- WinForm 使用皮肤,且单击按更换皮肤。
运行效果: 首先把DLL程序集文件和SSK皮肤文件放在要运行程序的DEBug文件夹下,然后引入引用. 之后可以在程序里写代码了. private void Form2_Load(object send ...
- vue-基于elementui自定义主题更换皮肤及自定义内容的皮肤跟换
参考这篇博客https://blog.csdn.net/young_Emily/article/details/78591261做一遍,加上自己的一些理解 思路:通过自己上一篇博客https://ww ...
- 给Visual Studio更换皮肤和背景图
1.先安装更换皮肤的插件 VS菜单栏里面找到:工具>扩展和更新>联机>搜索: Theme Editor 下载并安装: 安装后先不着急重启VS 然后,安装可更改背景图片的插件:工具&g ...
- java 24 - 9 GUI 之 给窗体换图标、设置启动在屏幕中间、更换皮肤
A.首先更改窗体左上角的图片 步骤一: 创建3个包,分别建立1个类 第一个是窗体的包,窗体类:设置窗体的主要布置和功能 第二个是资源包,图片:把想要改的图案拉进来 第三个是UI界面包,UI界面设计类: ...
- XtraForm中更换皮肤
前提: 默认皮肤的显示http://www.cnblogs.com/chucklu/p/4785572.html 1.修改XtraForm的LookAndFeel的SkinName属性,设置为Cara ...
- Vistual Studio 2012更换皮肤
早就装上VS2012了,可是除了在家里练习玩玩的时候使用外,在公司都还在用2010,也没好好研究过2012.这两天把公司的电脑换了系统,也就把vs换成了2012.可是看着不是白白的皮肤就是深色的皮肤, ...
- winfroms更换皮肤
一.添加控件lrisSkin.dll 然后把继承的窗体更换成别人做好的窗体类 能达到换肤的效果 二. 全部源代码就一行: skinEngine1.SkinFile = "WaveCo ...
随机推荐
- AbstractQueuedSynchronizer(一)
应该将子类定义为非公共内部帮助器类,一般并发包类用内部类Sync sync来继承并实现.为实现依赖于先进先出 (FIFO) 等待队列的阻塞锁和相关同步器(信号量.事件,等等)提供一个框架.此类的设计目 ...
- static_new
<?php //在::操作符的左边写上类的名称来静态地访问某个成员,这样就可以避免创建类的实例. //这样不仅可以省略掉实例化类的代码,而且还会更高效,因为类的每个实例都会占用一小部分的系统资源 ...
- 【LeetCode】数组排列问题(permutations)(附加next_permutation解析)
描述 Given a collection of distinct integers, return all possible permutations. Example: Input: [1,2,3 ...
- java并发实现原子操作
来自<java并发编程的艺术>.只是方便自己以后查找. 处理器如何实现原子操作 32位IA-32处理器使用基于对缓存加锁或总线加锁的方式来实现多处理器之间的原子操作.首先处理器会自动保证基 ...
- table-cell笔记
display:table-cell可将元素设为类似于table的td一样的布局,在垂直居中.两行自适应布局.等高布局下有很高的利用价值 详见: http://www.zhangxinxu.com/w ...
- shell脚本默认变量值
脚本参数相关: $# 是传给脚本的参数个数 $ 是脚本本身的名字 $ 是传递给该shell脚本的第一个参数 $ 是传递给该shell脚本的第二个参数 $@ 是传给脚本的所有参数的列表 $* 是以一个单 ...
- java深入探究01
经过前面基础部门的学习,希望大家都把基础打闹再继续深入探究java应用层面的知识,以后的日子我会继续更新java进阶知识,深入探究实际工作中的java应用,说的不好的地方还请见谅,如果能提出你宝贵的建 ...
- 算法(Algorithms)第4版 练习 1.5.1
id数组的变化情况: 0 1 2 3 4 5 6 7 8 9 10 components 9 0 0 1 2 3 4 5 6 7 8 0 9 components 3 4 0 1 2 4 5 6 7 ...
- 关于 tornado.simple_httpclient SimpleAsyncHTTPClient fetch下载大文件,默认60s的问题
遇到了线上发布任务失败的情况,要发布的包大小77M,网络OK,手动测试速度是1.7M,下载77M文件用时17s左右,理论上完全没有问题 但是,从日志看确实是download的时候,60s 超时了,而且 ...
- Python-单元测试unittest
Python中有一个自带的单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作,概念见下: TestCase 也就是测试用例 Test ...