???我們?cè)谶M(jìn)行Eclipse插件開發(fā)過程中,可能經(jīng)常會(huì)需要修改Eclipse的標(biāo)題,把Title改為自己公司的產(chǎn)品名稱,我在網(wǎng)上查找了一些資料(“小小涼粉”在Eclipse社區(qū)提問的回復(fù)),加上自己的實(shí)踐總結(jié)出以下幾種方法:
1、可以通過獲取主程序的Shell來更改程序標(biāo)題。
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) {?
????????????// 更改主程序的標(biāo)題文字
????????????shells .setText(newTitle);?
????????????break;?
?????????}?
??????}?
???}
}
2、通過重載WorkbenchWindowAdvisor 來實(shí)現(xiàn)
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源代碼來實(shí)現(xiàn)
其實(shí)最簡單的方法就是直接修改源代碼,我把Eclipse3.1.2的org.eclipse.ui.ide_3.1.1.jar源碼進(jìn)行了修改,只需修改org.eclipse.ui.internal.ide包中IDEWorkbenchWindowAdvisor.java類,在computeTitle()方法內(nèi)增加一句話就OK了!
??? private String computeTitle() {
??????..........
????????// 在返回標(biāo)題名稱之前,進(jìn)行title的自定義設(shè)置
??????? title = "隨便你取什么名字:)";
??????? return title;???????
??? }
大家如果需要?jiǎng)討B(tài)改變標(biāo)題,請(qǐng)看“小小涼粉”的《動(dòng)態(tài)改變RCP應(yīng)用程序的標(biāo)題》一文,地址為:
http://www.tkk7.com/dearwolf/archive/2006/12/13/87554.html