Look and Feel---JAVA界面(换肤术)

自己编写的一套java LookAndFeel界面GUI风格 源码+直接运行的 jar文件 希望大家得到福利后 评论下 立即下载
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 与“Look and Feel”密切相关的是LookAndFeel抽象类和UIManager类。 LookAndFeel类 LookAndFeel是一个抽象类,除了提供了一些static方法,还定义了一些抽象的个性化设置方法来由子类实现。 从JDK1.1.3开始,Sun提供了三个LookAndFeel的子类 javax.swing.plaf.metal.MetalLookAndFeel、 com.sun.java.swing.plaf.motif.MotifLookAndFeel、 com.sun.java.swing.plaf.windows. WindowsLookAndFeel。 它们分别提供了“Metal”、“Motif”与“Windows”的界面式样。也就是说,任何基于Swing的界面程序本身都可以使用三种系统提供的皮肤。实际上我们也可以直接或间接继承LookAndFeel类,自己编写一种“皮肤”。 开放源代码的产品Skin Look And Feel 1.2.2 在http://www.l2fprod.com/可以找到它的全部源代码。Skin Look And Feel本身还可以更换http://www.l2fprod.com/提供的各种“皮肤”,让你的程序可以各种“皮肤”示人。 UIManager类 这个类就是Swing界面管理的核心,管理Swing的小应用程序以及应用程序样式的状态。UIManager类提供了下列静态方法用于更换与管理“Look and Feel”: static void addAuxiliaryLookAndFeel(LookAndFeel laf) //增加一个“Look And Feel”到辅助的“look and feels”列表 static LookAndFeel[] getAuxiliaryLookAndFeels() //返回辅助的“look and feels”列表(可能为空)。 static String getCrossPlatformLookAndFeelClassName() //返回缺省的实现了跨平台的Look and Feel——即Java Look and Feel(JLF)。 static UIManager.LookAndFeelInfo[] getInstalledLookAndFeels() //返回了在目前已经安装的LookAndFeel的信息。 static LookAndFeel getLookAndFeel() //返回当前使用的Look and Feel static String getSystemLookAndFeelClassName() //返回与当前系统相关的本地系统Look and Feel,如果没有实现本地Look and Feel则返回缺省的跨平台的Look and Feel。 static void installLookAndFeel(String name, String className) //创建一个新的Look and Feel并安装到当前系统。 static void installLookAndFeel(UIManager.LookAndFeelInfo info) //创建一个新的Look and Feel并安装到当前系统。 static boolean removeAuxiliaryLookAndFeel(LookAndFeel laf) //从辅助的“look and feels”列表删除一个“Look And Feel” static void setInstalledLookAndFeels(UIManager.LookAndFeelInfo[] infos) //设置当前的已安装Look and Feel信。 static void setLookAndFeel(LookAndFeel newLookAndFeel) //设置当前使用的LookAndFeel。 static void setLookAndFeel(String className) //设置当前使用的LookAndFeel。参数是类名。 下面的源代码可以在Skin Look And Feel 1.2.2下的源代码根目录下找到: public class Skinit extends javax.swing.JApplet { /** * The main program for the Skinit class * * @param args The command line arguments * @exception Exception Description of Exception */ public static void main(String[] args) throws Exception { if (args.length == 0) { printUsage(); } int mainClassNameIndex = -1; String gtktheme = null; String kdetheme = null; String packtheme = null; for (int i = 0, c = args.length; i < c; i ) { if (args[i].equals("-gtk")) { gtktheme = args[ i]; } else if (args[i].equals("-kde")) { kdetheme = args[ i]; } else if (args[i].equals("-pack")) { packtheme = args[ i]; } else { mainClassNameIndex = i; break; } } String[] realArgs = new String[args.length - mainClassNameIndex - 1]; for (int i = 0, c = realArgs.length; i < c; i ) { realArgs[i] = args[mainClassNameIndex i 1]; } // First try to find the class Class clazz = null; try { clazz = Class.forName(args[mainClassNameIndex]); } catch (ClassNotFoundException e) { System.err.println("The class " args[mainClassNameIndex] " was not found in the classpath."); System.exit(1); } catch (Throwable e) { e.printStackTrace(); System.exit(1); } // if the class exists, get the main method Method mainMethod = null; try { mainMethod = clazz.getMethod("main", new Class[]{String[].class}); } catch (NoSuchMethodException e) { System.err.println("No method public static void main(String[] args) in " clazz.getName()); System.exit(1); } catch (Throwable e) { e.printStackTrace(); System.exit(1); } // try to make sure the main method is accessible try { mainMethod.setAccessible(true); } catch (Throwable e) { } // main class and main method found, time to load the skin Skin skin = null; if (packtheme != null) { if (SkinUtils.DEBUG) { System.out.println("Loading themepack " packtheme); } skin = SkinLookAndFeel.loadThemePack(packtheme); } else if (gtktheme != null) { if (kdetheme != null) { skin = new CompoundSkin(SkinLookAndFeel.loadSkin(gtktheme), SkinLookAndFeel.loadSkin(kdetheme)); } else { skin = SkinLookAndFeel.loadSkin(gtktheme); } } /* * try to use the user default skin */ if (skin == null) { if (SkinUtils.DEBUG) { System.out.println("Trying user skin"); } skin = SkinLookAndFeel.getSkin(); } if (skin != null) { SkinLookAndFeel.setSkin(skin); SkinLookAndFeel lnf = new SkinLookAndFeel(); UIManager.setLookAndFeel(lnf); UIManager.addPropertyChangeListener( new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent event) { Object newLF = event.getNewValue(); if ((newLF instanceof SkinLookAndFeel) == false) { try { UIManager.setLookAndFeel(new SkinLookAndFeel()); } catch (Exception e) { e.printStackTrace(); } } } }); } else { System.out.println("No GTK theme provided, defaulting to application Look And Feel"); } try { mainMethod.invoke(null, new Object[]{realArgs}); } catch (IllegalAccessException e) { System.err.println("Please make sure the class " clazz.getName() " and the method main(String[] args) are public."); System.exit(1); } catch (Throwable e) { e.printStackTrace(); System.exit(1); } } /** * Description of the Method */ static void printUsage() { String usage = "Skinit - Skin Look And Feel wrapper/n" "Usage: skinit [options] class [args...]/n" "/n" "where options include:/n" "/t-gtk GTK Theme Filename/n" "/t-kde KDE Theme Filename/n" "/t-pack Theme Pack Filename/n"; System.out.println(usage); System.exit(1); } } 在此程序中使用了Java的反射技术(Reflection)。在JDK文档中有它的详细介绍。 此程序最重要的是在: …… SkinLookAndFeel.setSkin(skin); SkinLookAndFeel lnf = new SkinLookAndFeel(); UIManager.setLookAndFeel(lnf); //这里是将当前的Look and Feel设置为自己定义的SkinLookAndFeel对象。 UIManager.addPropertyChangeListener( new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent event) { Object newLF = event.getNewValue(); if ((newLF instanceof SkinLookAndFeel) == false) { try { UIManager.setLookAndFeel(new SkinLookAndFeel()); } catch (Exception e) { e.printStackTrace(); } } } }); //监听属性改变事件,不允许用户更改LookAndFeel。即在用户要求改变Look and Feel时重新将LookAndFeel设置成SkinLookAndFeel。 …… 实际上这里只演示了一种皮肤,在http://www.l2fprod.com/有更多的皮肤可以尝试。
大数据实时+离线项目架构----智慧物流大数据平台(超流行框架!) 智慧物流大数据平台 文章目录智慧物流大数据平台一、项目背景二、逻辑架构三、解决方案技术亮点:数据流转四、项目的技术选型4.1流式处理平台4.2 分布式计算平台4.3 海量数据存储框架软件版本总结 一、项目背景 本项目基于一家大型物流公司研发的智慧物流大数据平台。该物流公司是国内综合性快递、物流服务商,并在全国各地都有覆盖的网点。经过多年的积累、经营以及布局,拥有大规模的客户群,日订单达上千万。如此规模的业务数据量,传统的数据处理技术已经不能满足企业的经营分析需求。公司需要基于大数据技术构建数据中心,从而挖 阅读详情

相关推荐

VS2015编译配置GDAL(图文并茂、超详细!!!)

文章目录一、GDAL介绍二、下载GDAL三、修改源代码四、工具命令提示符操作五、编译GDAL六、安装GDAL七、在VS2015的项目中配置GDAL八、添加环境变量九、测试是否配置成功 一、GDAL介绍 GDAL(Geospatial Data Abstraction Library)是一个在XMIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。OGR是GDAL项目的一个分支,功能与GDAL类似,只不过它提供对矢量数据的支持。因此

weixin_46196863的博客 3756

java smoothmetal_Java 用Look And Feel打造绚丽的界面外观!

先看效果图: 虽然我们知道,一个桌面应用程序的好坏,和它的性能,功能有着很大关系, 然而,对于大多数坐在电脑前的用户而言,他们的标准往往是: 绚丽的外观MVC设计下的的SWING自然没有忽视这一点,通过对UIManager的设置,我们可以很容易的改变应用程序的外观,也就是LOOK AND FEEL一.如何设置lookand feel:改变外观,似乎是一个很麻烦的事情,幸运的是在swing里,我们只...

weixin_39548968的博客 294

PX4固件下VTOL固定翼的3种起飞方式对比:手抛vs弹射vs跑道

本文深度解析PX4固件下VTOL固定翼的三种起飞方式:手抛、弹射与跑道起飞,对比其技术差异与适用场景。通过详细的参数配置和工程实践指南,帮助开发者优化起飞性能,提升无人机在不同环境下的适应性和可靠性。文章特别针对PX4飞控系统的最新特性进行了技术探讨。

weixin_30296405的博客 87

一个朋友的精彩BLOG

Dev Zone 偏执狂才能生存,人生/事业的路上需要再坚持一下但是又怎么说得清坚持的结果,道得尽坚持的含义 导航 BlogJava 首页 新随笔 联系 聚合 管理

抢财猫股票课堂 2509

腾讯开源CubeSandbox:为Agent打造可随时丢弃的安全沙箱环境

在人工智能与自动化技术快速发展的今天,智能体(Agent)在执行复杂任务时往往需要独立、完整的计算环境,但环境失控带来的安全风险一直是落地瓶颈。为解决这一痛点,可丢弃式沙箱技术应运而生。它通过轻量虚拟化原理实现环境秒级重建,并严格隔离宿主资源,即使Agent执行了恶意或误操作,也不会波及其他系统。这种技术价值在于平衡了灵活性与安全性,使开发者敢于赋予Agent更多自主操作权限。目前,这类技术已广泛应用于AI编程、自动化测试、数字员工、恶意代码分析等真实场景,成为Agent可靠运行的基石。腾讯开源的CubeS

weixin_42539414的博客 251

Proteus+汇编+8086电子时钟实战:从框架搭建到中断驱动的核心实现

本文详细介绍了使用Proteus仿真软件和8086汇编语言实现电子时钟的完整过程。从程序框架搭建、内存分段模型理解,到核心的8259中断控制器配置与编程,再到中断服务程序编写和数码管动态扫描显示驱动,系统阐述了底层软硬件协同开发的核心原理与实战步骤。该项目是深入理解计算机中断机制和汇编语言编程的绝佳实践。

weixin_29189381的博客 413

Java中改变应用程序界面外观(javax.swing.UIManager类和LookAndFeel类)

javax.swing.UIManager类 javax.swing.UIManager类是Swing界面管理核心,管理Swing应用程序样式。 LookAndFeel抽象类 与javax.swing.UIManager类密切相关的就是LookAndFeel抽象类。它除了提供static方法,还定义抽象的个性化设置方法由子类实现。 Sun提供了三个LookAndFeel子类:jav

披着羊皮的狼的博客 2万+

随机化策略——随机变量rand、约束constraint、权重dist、随机数产生示例

文章目录一、随机变量类型1.1.rand随机变量1.2.randc随机变量二、随机化约束2.1.constraint指定约束范围2.1.1.关系操作符约束(>、<、=、>=、<=)2.1.2.范围操作符约束(inside)2.1.3.权重分布约束(dist)2.1.4.条件约束(if-else; ->)三、启动随机化——randomize( )函数四、关闭或打开随机变...

Mr.翟的博客 2万+

Jbuilder 换皮肤及类库导入方法

1.下载SkinLF 比较著名的软件包是SkinLF,可以在http://skinlf.l2fprod.com/download/index.php下载。更多的皮肤可以在http://javootoo.l2fprod.com/plaf/skinlf/index.php下载(有些皮肤对中文支持可能有问题)。将皮肤包复制到工程目录下是个*.zip的包,这个包不要解开,或者建立个skin的目

冷月宫主的专栏 1026

ABAP CDS 视图参数 parameter_list 详解与最佳实践:从语法、作用域到可运行范例

本文系统梳理了ABAP CDS视图的WITH PARAMETERS定义与使用。主要内容包括:1)参数声明语法及其在整条SELECT语句中的贯穿使用;2)参数在WHERE/HAVING/ON等位置的多种写法(:pname和$parameters.pname);3)参数在航空公司航线筛选等实际业务场景中的应用;4)参数与会话变量的协作策略;5)在JOIN ON、HAVING、CASE等高级用法中的实践;6)提供完整的CDS视图与ABAP程序示例,展示参数声明、使用及Open SQL传参方式。所有内容均基于SAP

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 372

Python 爬虫实战:Twitter 数据定向抓取(特定话题 + 用户推文爬取与分析)

在社交媒体研究、舆情监测和市场分析等领域,Twitter 数据具有极高的价值。本文将详细介绍如何使用 Python 构建一个完整的 Twitter 数据爬取系统,包括特定话题和用户推文的爬取与分析。我们将涵盖从认证到数据存储、清洗、分析和可视化的全流程。

u014481728的博客 1034

漂亮不是梦!Java Swing美化攻略

Swing是一个为Java设计的GUI工具包,属于Java基础类的一部分。Swing包括了图形用户界面(GUI)功能,其组件包含:文本框、文本域、按钮、表格、列表等。看着这个熟悉又陌生的界面,相信对大多数人来说Java Swing已经淡出了我们的视线。再看看下面的界面,好像风格与上面完全不一样,但的确不这Swing。原来Swing提供了可编程渲染模型,使用户可以对渲染细节进行控制。也就是使用了LAF,那么什么是LAF呢?

Hanko的专栏 2893

杰理SDK UART 使用教程

本文介绍了JL701n芯片的UART串口通信使用教程,重点讲解了UART2的初始化配置、数据收发和中断处理功能。教程详细说明了代码结构、核心功能函数、配置参数和使用步骤,包括UART初始化、数据发送和接收中断处理等关键操作。同时提供了完整的API接口说明和注意事项,强调了中断处理限制、缓冲区管理、引脚配置等重要细节。最后给出了基本使用流程和高级任务处理示例,并针对常见问题提供了故障排除建议。本教程适用于需要在JL701n芯片上实现可靠串口通信的开发者。

qq_42014563的博客 1817

java 界面换肤(切换风格)

java 界面换肤(切换风格)

zhengjianqi的专栏 3177

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Swing换肤

源码: Java code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

u013407969的专栏 452

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

WebLaF项目推荐

WebLaF项目推荐 weblaf WebLaF is a fully open-source Look & Feel and component library written in pure Java for cross-platform desktop Swing applications. ...

gitblog_00150的博客 257

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

3步搞定Java Swing界面美化:FlatLaf让你的桌面应用焕然一新

还在为Java Swing应用的"复古"界面而烦恼吗?FlatLaf正是你需要的现代化界面美化方案!这个开源项目专为Java Swing桌面应用设计,只需几行代码就能让陈旧的界面瞬间焕发新生,支持多种精美主题,完美适配Windows、macOS和Linux系统。 ## 为什么你的Java应用需要FlatLaf? Java Swing曾经是桌面应用开发的主流选择,但默认的界面风格已经落后于时代。

gitblog_00466的博客 253

J2SE 窗体LookAndFeel 功能 更换组件的皮肤

首先你要在项目的构建路径中添加两个Jar的文件,nativeskin.jar包和skinlf.jar包(这两个包是可以从网上下载的) 然后就是从网上下载人家做好的JAVA皮肤了.....下载得到的.ZIP文件不需要解压 需要在程序中导入:import javax.swing.UIManager;import com.l2fprod.gui.plaf.skin.SkinLookA

ckzjj1028的专栏 1451

Unity3D 模型换肤技术

最近在看Unity3D的人物模型和动画。所以今天先说下人物的换装吧。相信大家都玩过网游吧,没有玩过的也相信见过,就是网游或者单机游戏里的人物会有更换服装,更换武器的功能。如果外形(mesh)是一样的,那么把贴图换下就好,但是如果外形不一样甚至骨骼都变了的话,就需要我们今天讨论的技术了。   一.Unity3D里的3D模型 Unity3D里的基础模型是从3D工具中导出来的fbx文件。把f

1万+

自定义UI在不同的LookAndFeel下的替换问题.

 import java.awt.Color;import java.awt.Font;import java.awt.Insets;import java.text.DecimalFormat;import javax.swing.LookAndFeel;import javax.swing.UIManager;import javax.swing.plaf.metal.MetalLoo

Keep Fighting 1577
上一篇: 平台非依赖性建议及使用抽象隔离变化
下一篇: 简单的界面换肤术
java169
博客等级 码龄18年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值