安徽新华电脑专修学院_安徽电脑培训_安徽电脑培训学校_合肥电脑培训

當(dāng)前位置:首頁 > 網(wǎng)站舊欄目 > 學(xué)習(xí)園地 > 設(shè)計(jì)軟件教程 > 也說關(guān)于WizardPage的動(dòng)態(tài)生成

也說關(guān)于WizardPage的動(dòng)態(tài)生成
2010-01-14 23:03:42  作者:  來源:
  在Eclipse中一個(gè)Wizard=WizardDialog+Wizard+WizardPage,在這三者中,可以把前者看成后者的容器(container),看看這些類里面的代碼就知道,Eclipse自己也是這么認(rèn)為的,而我們最終看到的東西是WizardPage,在一個(gè)Wizard中雖然我們看到的是每一個(gè)WizardPage都是在點(diǎn)擊next的時(shí)候一個(gè)一個(gè)顯示的,但是他們的創(chuàng)建卻是在Wizard初始化的時(shí)候一起被實(shí)例化的,因此這個(gè)給我們制造聯(lián)動(dòng)效果的WizardPage(也就是后一個(gè)WizardPage的內(nèi)容是根據(jù)前面的WizardPage的操作動(dòng)態(tài)生成的)造成了麻煩,不過這個(gè)問題也很好解決,這里(http://www.cnblogs.com/bjzhanghao/archive/2007/06/07/775314.html)已經(jīng)給出了答案.即復(fù)寫Wizard的createPageControls()方法,給一個(gè)空實(shí)現(xiàn)即可.
        不過還有另外一個(gè)問題沒有解決,就是如果我現(xiàn)在一個(gè)Wizard中有a,b兩個(gè)WizardPage,目前我停留在b WizardPage中,我現(xiàn)在點(diǎn)擊back回到a WizardPage中,然后對(duì)內(nèi)容做了修改,此次我希望再回到b WizardPage的時(shí)候,里面的內(nèi)容也同時(shí)跟著發(fā)生改變,但是僅僅是復(fù)寫Wizard的createPageControls()方法是無法實(shí)現(xiàn),我們通過查看源代碼,發(fā)現(xiàn)在org.eclipse.jface.wizard.WizardDialog.updateForPage(IWizardPage page)中:
java 代碼
 
  1. private void updateForPage(IWizardPage page) {   
  2.  // ensure this page belongs to the current wizard   
  3.  if (wizard != page.getWizard()) {   
  4.    setWizard(page.getWizard());   
  5.   }   
  6.  // ensure that page control has been created   
  7.  // (this allows lazy page control creation)   
  8.  if (page.getControl() == null) {   
  9.      page.createControl(pageContainer);   
  10.      // the page is responsible for ensuring the created control is accessable   
  11.      // via getControl.   
  12.      Assert.isNotNull(page.getControl());   
  13.      // ensure the dialog is large enough for this page   
  14.      updateSize(page);   
  15.  }   
  16.  // make the new page visible   
  17.  IWizardPage oldPage = currentPage;   
  18.  currentPage = page;   
  19.  currentPage.setVisible(true);   
  20.  if (oldPage != null) {   
  21.    oldPage.setVisible(false);   
  22.   }   
  23.  // update the dialog controls   
  24.  update();   
  25. }   


 

          也就是在調(diào)用WizardPage的createControl()方法之前要做一個(gè)判斷page.getControl() == null,因此我們只要將想辦法在調(diào)轉(zhuǎn)到某個(gè)WizardPage的時(shí)候,將其control設(shè)置為null就可以了.于是我們?cè)赼 WizardPage中引起b WizardPage的內(nèi)容發(fā)生改變的方法中添加如下代碼:

java 代碼

 

 
  1. // 對(duì)參數(shù)頁必須重繪   
  2.  IWizardPage page = getNextPage();   
  3.  if (page.getControl() != null)   
  4.   page.dispose();   

          然后復(fù)寫b WizardPage的dispose方法:
 

java 代碼
 
  1. public void dispose() {   
  2.  super.dispose();   
  3.     
  4.  setControl(null);   
  5. }   

          這樣我們就大功告成了.


安徽新華電腦學(xué)校專業(yè)職業(yè)規(guī)劃師為你提供更多幫助【在線咨詢
主站蜘蛛池模板: 天木生物科技有限公司-高通量自动化-细胞筛选平台 | 液压油缸_液压系统_液压泵站生产厂家-浙江汉达机械专注液压行业21年 | 太原万通汽车学校[官网]-太原好的汽修培训学校,学新能源汽车技术,学汽修,学汽车检测与维修技术 | 智慧网格,智慧城市,智慧社区,精准扶贫,农村电商,网格化,网格化管理,智慧养老,北京瑞光极远数码科技有限公司 | 瑞凯科技,吉林省瑞凯科技,吉林省瑞凯科技股份有限公司 | 深圳市佳顺优印印刷有限公司,佳顺优印,画册印刷,海报印刷,封套印刷,手提袋印刷,包装盒印刷,彩盒印刷,无碳纸印刷,不干胶印刷,信封印刷,便笺印刷,笔记本印刷,台历印刷,挂历印刷,国际会展中心附近印刷厂,宝安印刷厂,宝安教材印刷厂 | 宿迁市华泰交通设施有限公司,上海第四代路名牌,天津仿罗马柱路名牌,标准路名牌,路名牌灯箱,公交站台,户外广告灯箱, 交通标志牌,社区阅报栏 | 济宁搬家公司_曲阜搬家_济宁金顺搬家电话 | 山东临沂春鑫新能源科技有限公司|官网|生物质颗粒锅炉|燃气锅炉|水源热泵 | 企业信息安全整体解决方案提供商-上海华垸信息技术有限公司 | 实验反应釜,高压反应釜,玻璃反应釜,不锈钢反应釜-烟台招远松岭化工设备有限公司 | 中婴网,推动母婴产业健康·可持续发展,婴童网络专业传媒,母婴网,360孕婴童网,婴童品牌,婴儿用品品牌,婴儿用品加盟店,母婴用品加盟店 | 嘉兴市南湖斋食品股份有限公司_南湖斋 | 泊头市鸿海泵业有限公司--导热油泵,高温油泵,沥青保温泵,圆弧泵,齿轮油泵,高粘度泵,自吸离心油泵,罗茨油泵为主的专业生产厂家 | 箱式电炉,箱式烧结炉,箱式马弗炉,箱式实验炉,高温箱式电阻炉,箱式加热炉,箱式退火炉,箱式真空气氛炉洛阳研博炉业有限公司 | 新余婚庆公司_新余最好的婚庆公司_新余高端婚礼-爱尚婚礼策划 | 泥沙泵_脱硫泵_潜水泵_离心泵_渣浆泵厂家|诚信为先-泰安华泰泵业制造有限公司 | 双相钢,双相不锈钢,2507双相不锈钢-海新双相钢 | 山东礼品盒,礼品盒生产厂家,礼品包装盒厂家-济南恒印包装有限公司 | 钕铁硼-强力磁铁-永磁铁「聚盛磁铁」10年定制加工生产厂家 | 郑州宏大纺机有限公司 | 康明斯柴油发电机厂家-康明斯发电机(深圳)有限公司 | 无人叉车|智能无人叉车|智能AGV叉车|激光叉车AGV厂家_江西丹巴赫机器人股份有限公司 | 箱式电炉,箱式烧结炉,箱式马弗炉,箱式实验炉,高温箱式电阻炉,箱式加热炉,箱式退火炉,箱式真空气氛炉洛阳研博炉业有限公司 | 水质在线硬度计-立柜式五参数水质分析仪-上海博取 | 四合扣-工字扣-帽钉(831,200,警用,大拉力四合扣)-永嘉县鑫达钮扣有限公司 | 河南矿山重型起重机械有限公司| 洁净室、手术室、实验室、无尘车间厂房的净化工程装修设计施工公司-福临建设 | 乐云SEO | 品牌营销:抖音小红书关键词优化-ai搜索优化GEO推广 | 江门市金环电器有限公司| 全国产品维权打假真伪验证系统-石家庄市海略科技有限公司官方网站 | 武汉不锈钢水箱厂家_武汉不锈钢消防水箱定做批发_武汉不锈钢消防水箱加工厂 | 上海前 傲信息技术有限公司-企业信息化建设及品牌推广服务商 | 小程序商城,_电商系统源码,直播商城定制开发电商系统源码,电商系统,java电商系统 | 上海钧尚电器有限公司 - Faulhaber电机 AMETEK pittman电机 AMETEK ROTRON军用航空风机 Exlar电动缸 MAE电机 MCG电机 CP电动工具 马头工具 AMCI驱动器 直流电机 减速箱 直流伺服电机,无刷电机,直线电机 直流防爆电机 防爆电机 汽车助力转向电机 EPS电机 faulhaber motor faulhaber gearbox NANOTEC电机 ELWOOD电机 PHYTRON电机 EXLAR伺服电动缸 高力矩、高性能直流电机,音圈电机,风机,直流风机,航空风机 | 兔展-H5页面制作、微信营销活动一站式企业营销数字化增长平台 | 龙淼环保-旋流-喷淋塔,高温布袋,脉冲布袋-单机-滤筒除尘器,活性炭吸附箱,催化燃烧设备,除尘器配件-沧州龙淼环保设备制造有限公司 | 湖南众一离心机股份有限公司_活塞推料离心机_沉降离心机_卧式刮刀离心机 | 玉米加工机械_玉米深加工机械_玉米加工设备--河南工粮机械设备有限公司 | 南京自学考试网-南京自考报名 | 新颖科技 - 家电及汽车外饰面板供应商 |