|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
大型的应用一般不会用这些框架(因为性能考虑);开发人员根据需要选择用一些框架,也可以不选用框架;不用框架并不代表要自己写框架;修改框架的可能性更小。
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>
通过视频学习比传统的大课堂学习更适合成人化的学习规律。有人说大课堂气氛好,学习氛围浓,热闹,可以认识很多人。 |
|