hengheng123456789

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            297 Posts :: 68 Stories :: 144 Comments :: 0 Trackbacks
          ???我們在進行Eclipse插件開發過程中,可能經常會需要修改Eclipse的標題,把Title改為自己公司的產品名稱,我在網上查找了一些資料(“小小涼粉”在Eclipse社區提問的回復),加上自己的實踐總結出以下幾種方法:


          1、可以通過獲取主程序的Shell來更改程序標題。

          public static void changeAppTitle(String newTitle) {?
          ???Display display = Display.getDefault();?
          ???if (display != null) {?
          ??????Shell shells[] = display.getShells();?
          ??????for (int i = 0; i?<=shells.length();i++){
          ?????????Object data = shells .getData();?
          ?????????// 檢查shell是否為主程序的?shell:?
          ?????????if (data instanceof IWorkbenchWindow) {?
          ????????????// 更改主程序的標題文字
          ????????????shells .setText(newTitle);?
          ????????????break;?
          ?????????}?
          ??????}?
          ???}
          }

          2、通過重載
          WorkbenchWindowAdvisor 來實現

          public class MyWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor implements IPropertyChangeListener {?
          ???...?
          ???@Override?
          ???public void preWindowOpen() {?
          ??????super.preWindowOpen();?
          ??????_configurer = getWindowConfigurer();?

          ??????setTitle();?
          ??????PreferencesImpl.store().addPropertyChangeListener(this);?
          ???}?

          ???public void propertyChange(final PropertyChangeEvent event) {?
          ??????if (event.getProperty().equals(MY_PREFERENCE_KEY)) {?
          ?????????if (!event.getOldValue().equals(event.getNewValue())) {?
          ????????????setTitle();?
          ?????????}?
          ??????}?
          ???}?

          ???protected void setTitle() {?
          ??????final String title = computeNewTitleHoweverYouLike();?
          ??????_configurer.setTitle(title);?
          ???}?

          ???protected IWorkbenchWindowConfigurer _configurer;
          }

          3、通過修改Eclipse源代碼來實現

          其實最簡單的方法就是直接修改源代碼,我把Eclipse3.1.2的org.eclipse.ui.ide_3.1.1.jar源碼進行了修改,只需修改org.eclipse.ui.internal.ide包中IDEWorkbenchWindowAdvisor.java類,在computeTitle()方法內增加一句話就OK了!

          ??? private String computeTitle() {
          ??????..........
          ????????// 在返回標題名稱之前,進行title的自定義設置
          ??????? title = "隨便你取什么名字:)";
          ??????? return title;???????
          ??? }

          大家如果需要動態改變標題,請看“小小涼粉”的《動態改變RCP應用程序的標題》一文,地址為:
          http://www.aygfsteel.com/dearwolf/archive/2006/12/13/87554.html
          posted on 2006-12-13 18:05 哼哼 閱讀(4583) 評論(5)  編輯  收藏 所屬分類: JAVA-Eclipse

          Feedback

          # re: 如何更改Eclipse運行環境的Title標題 2006-12-13 18:14 BeanSoft
          暈, 貌似寫 Plugin 的都是通過指定一個什么默認的 -feature 參數來改變 Eclipse 標題的, 例如 MyEclipse, BEA Weblogic Workshop...

          反正第三種寫法應該是最懶的.

          MyEclipse 貌似是再啟動參數里加了個 -feature ....myeclipse 的參數啟動的, 但是直接用 eclipse.exe 啟動標題還是老樣子.

          可惜一時找不到快捷方式了.


          我不懂 Eclipse 的相關開發  回復  更多評論
            

          # re: 如何更改Eclipse運行環境的Title標題 2006-12-13 18:36 小小涼粉
          這分明是我在Eclipse 新聞組里面發的提問后面的回復  回復  更多評論
            

          # re: 如何更改Eclipse運行環境的Title標題 2006-12-14 10:19 哼哼
          原來是仁兄(小小涼粉)在Eclipse 新聞組提問的??!真是相見恨晚,我在Google中搜了很久關于更改Eclipse標題的方法,多虧仁兄在新聞組的提問,我才想到了第三種方法!希望仁兄多多指教:)  回復  更多評論
            

          # re: 如何更改Eclipse運行環境的Title標題 2006-12-14 12:06 小小涼粉
          sorry, 開始的口氣有點不太好...

          第三種方法并不能動態改變標題

          動態的方法可以到我的帖子里面有答案...  回復  更多評論
            

          # re: 如何更改Eclipse運行環境的Title標題 2006-12-14 12:44 哼哼
          呵呵!沒關系,咱們開發人員都是性情中人,都沒有惡意,我也是昨天在網上找了許久才找到的答案,快下班了急忙寫下這段隨筆,怕以后忘了,今后一定注意寫明出處。在這里向您表示深深的歉意:)
          大家如果需要動態改變標題,請看“小小涼粉”的《動態改變RCP應用程序的標題》一文,地址為:
          http://www.aygfsteel.com/dearwolf/archive/2006/12/13/87554.html
          “小小涼粉”主頁為:
          http://www.aygfsteel.com/dearwolf/
          其中有許多Eclipse相關的文章,請多多支持!
            回復  更多評論
            

          主站蜘蛛池模板: 崇文区| 永靖县| 施秉县| 外汇| 和硕县| 资兴市| 林西县| 墨竹工卡县| 莱芜市| 婺源县| 册亨县| 定日县| 澄江县| 阿拉尔市| 黄骅市| 云林县| 西城区| 安远县| 寿阳县| 庄浪县| 洛宁县| 东至县| 屯留县| 马山县| 连江县| 天全县| 禹州市| 马公市| 内乡县| 科尔| 松江区| 大理市| 高雄县| 瓦房店市| 分宜县| 英山县| 云龙县| 深水埗区| 苏尼特左旗| 禹城市| 湘潭市|