仓酷云

标题: 了解下JAVA的Swing当地表面与Substance表面之间的切换成绩及办理计划 [打印本页]

作者: 老尸    时间: 2015-1-18 11:03
标题: 了解下JAVA的Swing当地表面与Substance表面之间的切换成绩及办理计划
大型的应用一般不会用这些框架(因为性能考虑);开发人员根据需要选择用一些框架,也可以不选用框架;不用框架并不代表要自己写框架;修改框架的可能性更小。
Swing使用程序假如是在开源的Look&&Feel之间切换,感到很简单,可是假如把使用程序在开源表面下切换到体系默许的大概JDK自带的表面时,成绩就来了。不是没有题目栏,就是题目栏的表面没有改动,用的是体系的窗口粉饰。这些是由于在使用程序启动时在main办法里增加了如许一句代码酿成的:
  1. JFrame.setDefaultLookAndFeelDecorated(true);
复制代码
今朝办理这个成绩的举措就是先将本来的JFramedispose失落,然后在new一个JFrame,让本来的frame指向这个新的JFrame。未几说,看代码对照直不雅,中心代码以下:
初始化使用,initComponents()办法是NetBeansIDE天生的,就不贴了。
  1.    privatestaticJFrameconfig;
  2.    privateRectanglesavedBounds;
  3.    /**CreatesnewformConfig*/
  4.    publicSkinChangeDemo(){
  5.        initComponents();
  6.    }
  7.    publicSkinChangeDemo(booleandecor){
  8.        setUndecorated(decor);
  9.        initComponents();
  10.    }
复制代码
上面就是中心代码:
  1.  privatevoidsaharaButtonActionPerformed(java.awt.event.ActionEventevt){                                            
  2.        //TODOaddyourhandlingcodehere:
  3.        LookAndFeelold=UIManager.getLookAndFeel();
  4.        SubstanceSkinskin=newSaharaSkin();
  5.        if(oldinstanceofSubstanceLookAndFeel){
  6.            SubstanceLookAndFeel.setSkin(skin);
  7.        }else{  //假如不是Substance的表面则切换为Substance表面
  8.                changSkin(skin);
  9.        }
  10.    }                                           
  11.    privatevoidnimbusButtonActionPerformed(java.awt.event.ActionEventevt){                                            
  12.        try{
  13.            UIManager.setLookAndFeel(newNimbusLookAndFeel());
  14.            savedBounds=getBounds();
  15.            dispose();
  16.            config=null;
  17.            config=newSkinChangeDemo(false);
  18.            config.setBounds(savedBounds);
  19.            config.setVisible(true);
  20.        }catch(UnsupportedLookAndFeelExceptionex){
  21.            Logger.getLogger(SkinChangeDemo.class.getName()).log(Level.SEVERE,null,ex);
  22.        }
  23.        SwingUtilities.updateComponentTreeUI(this);
  24.    }                                           
  25.    privatevoidbusinessButtonActionPerformed(java.awt.event.ActionEventevt){                                              
  26.        LookAndFeelold=UIManager.getLookAndFeel();
  27.        SubstanceSkinskin=newBusinessSkin();
  28.        if(oldinstanceofSubstanceLookAndFeel){
  29.            SubstanceLookAndFeel.setSkin(skin);
  30.        }else{   //假如不是Substance的表面则切换为Substance表面
  31.            changSkin(skin);
  32.        }
  33.    }                                             
  34.    /**
  35.     *用于将非Substance表面的界面该为Substance表面。
  36.     *@paramskin
  37.     */
  38.    privatevoidchangSkin(SubstanceSkinskin){
  39.        savedBounds=getBounds();
  40.        dispose();
  41.        config=newSkinChangeDemo(true);
  42.        config.getRootPane().setWindowDecorationStyle(JRootPane.FRAME); //这句是关头代码,本人看API体味吧
  43.        config.setBounds(savedBounds); //坚持变更皮肤时地位稳定
  44.        SubstanceLookAndFeel.setSkin(skin);
  45.        config.setVisible(true);
  46.        config.getRootPane().updateUI();
  47.        SwingUtilities.updateComponentTreeUI(this);
  48.    }
复制代码
<p>
通过视频学习比传统的大课堂学习更适合成人化的学习规律。有人说大课堂气氛好,学习氛围浓,热闹,可以认识很多人。
作者: 再现理想    时间: 2015-1-19 11:11
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
作者: 灵魂腐蚀    时间: 2015-1-20 06:04
Java 编程语言的风格十分接近C、C++语言。
作者: 若天明    时间: 2015-1-25 22:14
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者: 小女巫    时间: 2015-2-4 06:05
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
作者: 透明    时间: 2015-2-9 16:58
是一种突破用户端机器环境和CPU
作者: 若相依    时间: 2015-2-27 12:04
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
作者: 飘飘悠悠    时间: 2015-3-9 02:30
是一种使用者不需花费很多时间学习的语言
作者: 飘灵儿    时间: 2015-3-16 20:10
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
作者: 老尸    时间: 2015-3-23 00:04
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2