`

Swing 做了一个模仿QQ2009的登录界面

阅读更多

今天用Swing 做了一个模仿QQ2009的登录界面,用到了开源的Look&Feel (Substance),在使用的过程中遇到了一些问题,也学到了一些技巧。
Substance (https://substance.dev.java.net)有很多的外观可以选择,而且都很漂亮,还提供了强大的API供开发者使用。Substance 现在已经
发 展到5.2RC 版了,一开始我使用的是5.1版,但是在使用的过程中发现了一些bug,当我使用Substance中提供的水印功能时,出现了许多的异常,这个bug在 5.0的时候是没有的,后来我又下载了最新的5.2RC版,这个问题在5.2版中已经解决了。大家如果需要的话,可以点 点这里下载   。

第一个问题:如何完整的使用Look&Feel?


大家可能会问了,什么叫着完整的使用Look&Feel?这里先不急着说明,先让大家看一副截图;



大家看看上面幅图是否已经用了Look&Feel?  答案是正确的,但是并不完整,因为他的标题栏还没有改变,完整的使用Look&Feel后的截图如下:



是不是觉得很不一样了呢?对于Swing 的老手来说,这个是小菜一碟,但是对于新手来说就比较困难了,因为他们看到的使用look&feel的许多教程都是像
这样的:

 UIManager.setLookAndFeel( new  SubstanceOfficeBlue2007LookAndFeel());

或者这样:

try  {
      UIManager.setLookAndFeel(
" org.jvnet.substance.skin.SubstanceRavenGraphiteLookAndFeel " );
    } 
catch  (Exception e) {
      System.out.println(
" Substance Raven Graphite failed to initialize " );
    }


或者说是我自己太菜了吧。总之我在认真学习Swing的外观使用之前我是不知道该如何使标题栏也改变的。
要改变标题栏其实只要一句话就够了,就是在main方法中添加这么一句:

JFrame.setDefaultLookAndFeelDecorated( true );

如果想要让JDialog也改变的话,还要再加上: JDilog.setDefaultLookAndFeelDecorated(true);

下面是最终完成的界面,使用的是Substance中 OfficeBlue2007LookAndFeel



第二个问题,如何给应用程序添加水印或者说是背景?

官方的文档说的很少,也没有具体的使用例子说明,后来下载了Substance的源码来看才发现该如何使用。

以下就是我参考官方源码写的在main方法中的一段核心代码

JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
try  {
            SubstanceImageWatermark watermark 
=   new  SubstanceImageWatermark(LoginFrame. class .getResourceAsStream( " /demo/001.jpg " ));
            watermark.setKind(ImageWatermarkKind.SCREEN_CENTER_SCALE);
            SubstanceSkin skin 
=   new  OfficeBlue2007Skin().withWatermark(watermark);   //初始化有水印的皮肤

          
 UIManager.setLookAndFeel( new  SubstanceOfficeBlue2007LookAndFeel());
            SubstanceLookAndFeel.setSkin(skin);  //设置皮肤
           
        } 
catch  (UnsupportedLookAndFeelException ex) {
            Logger.getLogger(LoginFrame.
class .getName()).log(Level.SEVERE,  null , ex);
        }


上面的代码中有一句代码的位置是不能变的,那就是 SubstanceLookAndFeel.setSkin(skin);
它必须要在 UIManager.setLookAndFeel( new  SubstanceOfficeBlue2007LookAndFeel()); 这句的下面。
否则你看不到水印的效果。下图是有水印和没水印的对比图(左边的是有水印的,右边的是没水印的):



再贴一张官方的一张截图:大家看看Swing写的 Office2007 界面如何?

 

 

原文地址:http://www.iteye.com/topic/394314

 

分享到:
评论

相关推荐

    精仿QQ2009登陆界面Colin3dmax

    【标题】"精仿QQ2009登陆界面Colin3dmax" 是一个与三维设计和模拟软件3D Max相关的项目,旨在重现2009年版QQ的登录界面。这个项目可能由设计师Colin创作,展示了他/她在3D建模、纹理贴图、灯光设置以及用户界面设计...

    精仿QQ2009登陆界面

    【精仿QQ2009登陆界面】是一个项目,旨在模仿2009年版QQ的登录界面,为开发者提供一个学习和实践UI设计的平台。这个项目可能包含了一个完整的登录界面,包括输入账号、密码的文本框,记住密码、自动登录的复选框,...

    java swing QQ登陆界面

    swing写的QQ2009登陆界面!!!!!!!!!!!!!!

    仿QQ2009界面1

    【标签】"仿QQ界面"表明这是一个关于模仿QQ用户界面的项目,可能会涉及到对原版QQ界面的分析,以及如何复刻其特点,例如模仿QQ的表情系统、好友列表、聊天窗口等功能。 【压缩包子文件的文件名称列表】"qqlike"可能...

    QQ2009 聊天界面消息获取文档说明

    QQ2009 聊天界面消息获取文档说明 本文档主要讲解了获取 QQ 2009 聊天记录的基本原理和技术实现细节。该技术可以截取 QQ 聊天记录,而不需要获取窗口句柄。下面是该技术的相关知识点: 1. RichEdit 4.1 控件:QQ ...

    模仿QQ2009做的C#Winform即时通信程序

    本文将深入探讨如何使用C# Winform技术,模仿QQ2009的设计,构建一个类似的即时通信程序。 首先,C#是微软公司推出的面向对象的编程语言,它与.NET框架紧密结合,为开发者提供了丰富的库和工具,使得开发Windows...

    Swing实现高仿QQ2009

    Swing是Java编程语言中的一个图形用户界面(GUI)工具包,它是Java Foundation Classes (JFC)的一部分。在Swing中,你可以创建丰富的、跨平台的桌面应用,它提供了许多组件和功能,使得开发者能够构建出美观且功能强大...

    仿QQ2009的登录界面!

    仿QQ2009的登录界面!其他如题希望你们会喜欢!

    QQ2009界面源代码

    QQ2009界面源代码是腾讯公司在2009年发布的一款即时通讯软件QQ的用户界面设计与实现的原始代码。这些源代码对于开发者,尤其是对GUI(图形用户...但无论如何,它仍然是一个深入了解早期桌面应用界面设计的宝贵资源。

    VB仿QQ2009登陆页面

    【VB仿QQ2009登陆页面】是一个VB(Visual Basic)编程项目,旨在通过纯VB代码实现一个与QQ2009登录界面相似的用户界面。这个项目对于初学者来说是一个很好的学习资源,因为它展示了如何利用VB的基本控件和自定义控件...

    C#winform 实现 QQ2009游戏界面

    皮肤制作,估计是很多winform新手都想学的,网上也有... 我们当然得从它的文件夹说起,打开QQ游戏的安装文件夹,可以发现一个 名为"Res"的文件,很明显,这就是它的资源文件夹,我们只要关注它下面的几个文件夹就可以了

    [免费-原创] QQ2009界面控件 C#源码

    之前上传了一个测试包,现在把这个QQ2009界面控件上传上来,提供给大家一起共享。 [colin3dmax]为大家提供更多免费资源

    Java 模仿QQ登录界面

    工程用NetBeans打开,运行源码包fq文件夹下的Main.java文件或者右击项目点击运行。该工程基于JavaSwing模仿QQ2009登录界面编程,运行后显示的登录界面与QQ2009界面十分相似,但这只是界面而并没有实现聊天功能。

    高仿QQ2009界面华丽

    总结来说,"高仿QQ2009界面华丽"是一项融合了设计、编程和技术挑战的项目,旨在通过复刻和优化经典版本的界面,为用户提供一个既熟悉又新鲜的使用体验。这涉及到界面设计原则、前端技术应用、用户体验优化等多个IT...

    模拟QQ2009界面

    QQ2009界面模拟是基于MFC(Microsoft Foundation Classes)框架进行开发的一个项目,主要目的是为了完成VC++6.0编程课程中的一个大作业。MFC是微软提供的一套面向对象的C++库,它封装了Windows API,使得开发者能够...

    VC++仿QQ2009主界面及托盘菜单(基于RingSDK

    VC++仿QQ2009主界面及托盘...这里请注意,本程序是基于RingSDK界面类库,编译需要此类库支持,本程序也正是RingSDK库的一个演示程序,希望通过这个演示程序让大家更熟悉RingSDK的用法、功能和新特性,运行截图如上示。

    QQ2009 协议以及登陆QQ源码

    QQ2009协议以及登陆QQ源码是一个关于QQ早期版本通信协议和登录流程解析的编程主题。在本文中,我们将深入探讨QQ2009的登录协议、源码实现及相关的技术要点。 QQ是中国最知名的即时通讯软件之一,其通信协议是保障...

    VB高仿的QQ2009界面及功能附源码.rar

    标题中的“VB高仿的QQ2009界面及功能附源码”表明这是一个使用Visual Basic(VB)编程语言开发的项目,目的是模仿腾讯QQ在2009年的用户界面和部分功能。VB是一种面向对象的编程语言,常用于创建Windows桌面应用程序...

    QQ2009皮肤制作教程 QQ2009皮肤制作工具 QQ2009皮肤下载

    (看见下面有人怀疑说为什么教程这么小,特此解释一下:其实上面已经说了本教程是图文教程,图文教程压缩后当然小了,压缩包里面的文件有:一个已经做好的皮肤“美丽丹儿.kipx”,教程:“QQ2009皮肤制作.doc”及KIPX...

    仿QQ2009界面提示代码

    这里提到的"lhgdialog"是一个弹窗框架,它具备轻量级、高效、美观且易于使用的特性,常用于构建多用途的对话框组件。 首先,我们来看看`lhgdialog.css`,这是样式表文件,包含了弹出窗口的各种样式定义。在CSS中,...

Global site tag (gtag.js) - Google Analytics