老尸 发表于 2015-1-18 11:03:25

了解下JAVA的Swing当地表面与Substance表面之间的切换成绩及办理计划

大型的应用一般不会用这些框架(因为性能考虑);开发人员根据需要选择用一些框架,也可以不选用框架;不用框架并不代表要自己写框架;修改框架的可能性更小。
Swing使用程序假如是在开源的Look&&Feel之间切换,感到很简单,可是假如把使用程序在开源表面下切换到体系默许的大概JDK自带的表面时,成绩就来了。不是没有题目栏,就是题目栏的表面没有改动,用的是体系的窗口粉饰。这些是由于在使用程序启动时在main办法里增加了如许一句代码酿成的:

JFrame.setDefaultLookAndFeelDecorated(true);今朝办理这个成绩的举措就是先将本来的JFramedispose失落,然后在new一个JFrame,让本来的frame指向这个新的JFrame。未几说,看代码对照直不雅,中心代码以下:
初始化使用,initComponents()办法是NetBeansIDE天生的,就不贴了。

   privatestaticJFrameconfig;
   privateRectanglesavedBounds;



   /**CreatesnewformConfig*/
   publicSkinChangeDemo(){
       initComponents();
   }

   publicSkinChangeDemo(booleandecor){
       setUndecorated(decor);
       initComponents();
   }上面就是中心代码:

 privatevoidsaharaButtonActionPerformed(java.awt.event.ActionEventevt){                                            
       //TODOaddyourhandlingcodehere:
       LookAndFeelold=UIManager.getLookAndFeel();
       SubstanceSkinskin=newSaharaSkin();
       if(oldinstanceofSubstanceLookAndFeel){
           SubstanceLookAndFeel.setSkin(skin);
       }else{  //假如不是Substance的表面则切换为Substance表面
               changSkin(skin);
       }
   }                                           

   privatevoidnimbusButtonActionPerformed(java.awt.event.ActionEventevt){                                            
       try{
           UIManager.setLookAndFeel(newNimbusLookAndFeel());
           savedBounds=getBounds();
           dispose();
           config=null;
           config=newSkinChangeDemo(false);
           config.setBounds(savedBounds);
           config.setVisible(true);
       }catch(UnsupportedLookAndFeelExceptionex){
           Logger.getLogger(SkinChangeDemo.class.getName()).log(Level.SEVERE,null,ex);
       }
       SwingUtilities.updateComponentTreeUI(this);

   }                                           

   privatevoidbusinessButtonActionPerformed(java.awt.event.ActionEventevt){                                              
       LookAndFeelold=UIManager.getLookAndFeel();
       SubstanceSkinskin=newBusinessSkin();
       if(oldinstanceofSubstanceLookAndFeel){
           SubstanceLookAndFeel.setSkin(skin);
       }else{   //假如不是Substance的表面则切换为Substance表面
           changSkin(skin);
       }
   }                                             

   /**
    *用于将非Substance表面的界面该为Substance表面。
    *@paramskin
    */
   privatevoidchangSkin(SubstanceSkinskin){
       savedBounds=getBounds();
       dispose();
       config=newSkinChangeDemo(true);
       config.getRootPane().setWindowDecorationStyle(JRootPane.FRAME); //这句是关头代码,本人看API体味吧
       config.setBounds(savedBounds); //坚持变更皮肤时地位稳定
       SubstanceLookAndFeel.setSkin(skin);
       config.setVisible(true);
       config.getRootPane().updateUI();
       SwingUtilities.updateComponentTreeUI(this);

   }<p>
通过视频学习比传统的大课堂学习更适合成人化的学习规律。有人说大课堂气氛好,学习氛围浓,热闹,可以认识很多人。

再现理想 发表于 2015-1-19 11:11:24

那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!

灵魂腐蚀 发表于 2015-1-20 06:04:04

Java 编程语言的风格十分接近C、C++语言。

若天明 发表于 2015-1-25 22:14:40

如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。

小女巫 发表于 2015-2-4 06:05:18

是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能

透明 发表于 2015-2-9 16:58:39

是一种突破用户端机器环境和CPU

若相依 发表于 2015-2-27 12:04:45

至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。

飘飘悠悠 发表于 2015-3-9 02:30:28

是一种使用者不需花费很多时间学习的语言

飘灵儿 发表于 2015-3-16 20:10:40

应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展

老尸 发表于 2015-3-23 00:04:40

Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
页: [1]
查看完整版本: 了解下JAVA的Swing当地表面与Substance表面之间的切换成绩及办理计划