在導(dǎo)出RCP時(shí)把插件打包成文件夾的形式而不是jar包
posted @ 2008-12-02 11:18 花開(kāi)有時(shí) 閱讀(3021) | 評(píng)論 (3) | 編輯 收藏
花開(kāi)有時(shí)花開(kāi)有時(shí),花落有時(shí),來(lái)有時(shí),去有時(shí)。不撕扯,只關(guān)切;不紀(jì)念,只牽掛;不感動(dòng),只明白;不尋找,只記得。
隨筆 - 24, 文章 - 0, 評(píng)論 - 54, 引用 - 0
|
在導(dǎo)出RCP時(shí)把插件打包成文件夾的形式而不是jar包
摘要: 在使用RCP做項(xiàng)目時(shí),最后的發(fā)布一般是用.product文件的Export wizard導(dǎo)出Product,但是導(dǎo)出的插件默認(rèn)情況下都是以jar包的形式導(dǎo)出,而有的時(shí)候會(huì)有在項(xiàng)目中使用的第三方包不允許我們?cè)趯?dǎo)出的產(chǎn)品中進(jìn)行發(fā)布,但可以允許用戶(hù)自己下載后進(jìn)行添加,因?yàn)閖ar包的形式是把所有依賴(lài)的jar包也一起打包成jar,因此jar的形式就不能達(dá)到我們發(fā)布的要求。在試過(guò)了很多方法后,我們覺(jué)得如果導(dǎo)出的形式改成文件夾的形式是可行的。因?yàn)橐话銇?lái)說(shuō),發(fā)布的插件都會(huì)有一個(gè)lib文件夾存放依賴(lài)的jar,如果我們?cè)赽uild.properties文件中設(shè)置不把依賴(lài)的lib下jar包發(fā)布,并且以文件夾的形式發(fā)布插件,讓用戶(hù)自己下載添加到lib文件夾里,這樣就ok了。 閱讀全文
posted @ 2008-12-02 11:18 花開(kāi)有時(shí) 閱讀(3021) | 評(píng)論 (3) | 編輯 收藏 JME研究群(42691979)建立!
對(duì)JME感興趣的同志請(qǐng)加入JME研究群(群號(hào):42691979),大家一起研究,共同進(jìn)步!
posted @ 2008-04-29 14:13 花開(kāi)有時(shí) 閱讀(1543) | 評(píng)論 (2) | 編輯 收藏 定義Eclipse Editor應(yīng)該要注意的問(wèn)題1.Editor必須要設(shè)置icon,否則會(huì)出異常。 2.必須要重寫(xiě)EditorPart#init(IEditorSite site, IEditorInput input)方法,內(nèi)容一般為 posted @ 2008-02-05 13:41 花開(kāi)有時(shí) 閱讀(471) | 評(píng)論 (0) | 編輯 收藏 如何自定義SWT Table的每一個(gè)Cell的height and width
demonstration code:
Display display = new Display(); Shell shell = new Shell(display); shell.setBounds(10,10,200,250); final Table table = new Table(shell, SWT.NONE); table.setBounds(10,10,150,200); table.setLinesVisible(true); for (int i = 0; i < 5; i++) { new TableItem(table, SWT.NONE).setText("item " + i); } table.addListener(SWT.MeasureItem, new Listener() { public void handleEvent(Event event) { int clientWidth = table.getClientArea().width; event.height = event.gc.getFontMetrics().getHeight() * 2; event.width = clientWidth * 2; } }); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); 說(shuō)明:黑體部分是關(guān)鍵,主要是要為table添加一個(gè)監(jiān)聽(tīng)器并要用到SWT.MeasureItem屬性,如果是在TableView下則需要調(diào)用TableView#getTable()方法獲得Table再添加監(jiān)聽(tīng)器。 posted @ 2008-02-03 16:26 花開(kāi)有時(shí) 閱讀(2411) | 評(píng)論 (1) | 編輯 收藏 RCP開(kāi)發(fā)--對(duì)PropertyView定義自己的排序器
在RCP開(kāi)發(fā)中難免要使用要PropertyView對(duì)自己的一些Object進(jìn)行屬性描述,但是有時(shí)候需要對(duì)PropertyView (org.eclipse.ui.views.properties.PropertySheetPage)
進(jìn)行自己的排序(PropertySheetPage有定義好的排序器),經(jīng)研究發(fā)現(xiàn)PropertySheetPage并沒(méi)有提供方法可以設(shè)置排序器,怎么辦呢? 方法是實(shí)現(xiàn)一個(gè)自己的PropertySheetPage,因?yàn)樵赑ropertySheetPage中實(shí)際上是提供了一個(gè)設(shè)置排序器的方法的,但是這個(gè)方法是受保護(hù)的(protected), 并不是公開(kāi)的(public),所以我們需要實(shí)現(xiàn)自己的PropertySheetPage,而且還需要實(shí)現(xiàn)自己的排序器PropertySheetSorter。 1.實(shí)現(xiàn)自己的PropertySheetSorter:需要繼承PropertySheetSorter類(lèi)并實(shí)現(xiàn)sort(IPropertySheetEntry[] entries)方法,具體可以看父類(lèi)的實(shí)現(xiàn)。 2.實(shí)現(xiàn)自己的PropertySheetPage:需要繼承PropertySheetPage類(lèi)并重寫(xiě)createControl(Composite parent)方法, 在方法中首先調(diào)用setSorter(自己定義的PropertySheetSorter類(lèi)的對(duì)象),然后調(diào)用super.createControl(parent)方法。 posted @ 2008-02-03 15:52 花開(kāi)有時(shí) 閱讀(680) | 評(píng)論 (0) | 編輯 收藏 定義自己的CellEditor
摘要: 定義自己的CellEditor其實(shí)不難,完整的實(shí)例可以看Eclipse的TextCellEditor與ComboBoxCellEditor(原理都差不多,但推薦看CmboboxCellEditor,它的實(shí)現(xiàn)簡(jiǎn)單些) 閱讀全文
posted @ 2008-02-03 14:51 花開(kāi)有時(shí) 閱讀(3757) | 評(píng)論 (1) | 編輯 收藏 工作隨想
工作差不多有一個(gè)月了,突然發(fā)現(xiàn)周?chē)耐露疾皇敲拼髮W(xué)順利畢業(yè)擁有學(xué)位的高材生就是在讀的名牌大學(xué)實(shí)習(xí)生。今天發(fā)現(xiàn)我旁邊的一位是保送到清華的南大學(xué)生,呵呵,想想自己沒(méi)學(xué)位,和別人比起來(lái)還真是回事啊。真不知道,將來(lái)我有成就了,學(xué)校會(huì)不會(huì)給“榮譽(yù)學(xué)士學(xué)位”呢?呵呵,比較好玩。
posted @ 2007-12-26 20:19 花開(kāi)有時(shí) 閱讀(296) | 評(píng)論 (0) | 編輯 收藏 java Method類(lèi)試用
摘要: 背景:在項(xiàng)目中有一堆javabean,要用在界面上畫(huà)一堆tableview,要對(duì)這一堆tableview進(jìn)行排序,因此要寫(xiě)一堆sorter類(lèi)(假如為每個(gè)tableview都寫(xiě)一個(gè)的話(huà)),工作量比較大。
思考:其實(shí)這些sorter類(lèi)都是差不多的,只是調(diào)用的javabean不同,方法名稱(chēng)不同,實(shí)現(xiàn)的原理,沒(méi)有什么不同,那么該如何使用一個(gè)sorter類(lèi)就可對(duì)所有的tableview進(jìn)行排序呢? 思考結(jié)果:也許可以用Class類(lèi)與Method類(lèi),也就是什么reflect機(jī)制。 閱讀全文 posted @ 2007-12-23 14:07 花開(kāi)有時(shí) 閱讀(5899) | 評(píng)論 (4) | 編輯 收藏 自定義具有“上圖片”下“文字”效果的Button
SWT的Button控件時(shí)可以加圖片與文字的,但是不能控制圖片與文字的位置。比如我要定義一個(gè)Button具有這樣的效果:
![]() 具體代碼如下: //定義一個(gè)Button Button button = new Button(shell,SWT.NONE); //加圖片 Button.setImage(new Image(Display.getCurrent(),”….圖片的路徑”); //加上繪制事件 button.addPaintListener(new PaintListener(){ public void paintControl(PaintEvent e){ //設(shè)置字體樣式等等 Font font = new Font(Display.getCurrent(),””,8,SWT.BOLD); e.gc.setFont(font); e.gc.drawText(“haha”,0,0); } }); ok,基本上就是這樣了,不知道有沒(méi)有更好的方法。 posted @ 2007-12-11 12:57 花開(kāi)有時(shí) 閱讀(945) | 評(píng)論 (0) | 編輯 收藏 IFolderLayout#addView()、IPageLayout#addView()與IPageLayout#addStandaloneView()的區(qū)別。IFolderLayout#addView():views放在一個(gè)IFolderLayout(類(lèi)似一個(gè)文件夾)里,可以疊加view。 IPageLayout#addView():view按照方法的參數(shù)設(shè)置放置,程序運(yùn)行后可以疊加view。 IPageLayout#addStandaloneView():view按照方法的參數(shù)設(shè)置放置view,程序運(yùn)行后不能疊加view。 posted @ 2007-12-10 12:59 花開(kāi)有時(shí) 閱讀(1829) | 評(píng)論 (0) | 編輯 收藏 新生活=退學(xué)+找到工作。退學(xué)了! 背景:就讀于北京某軍校計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè),本科,指揮類(lèi),已讀完4年大學(xué)。 退學(xué)原因:5公里跑不合格。 結(jié)論:此子不適合部隊(duì)。 結(jié)果:大學(xué)肄業(yè),士官?gòu)?fù)原。 找到工作! 待遇:畢業(yè)生中上水平。 公司:外企。 目的:學(xué)習(xí)學(xué)習(xí)再學(xué)習(xí)!從事自己喜歡的工作。 事情終于告一段落了,找到了工作使我、父母、所有關(guān)心我的人稍稍放下心來(lái)。舊的日子已經(jīng)過(guò)去,新的生活開(kāi)始來(lái)臨。我要鼓起勇氣,打足精神,迎接挑戰(zhàn)! posted @ 2007-12-05 22:09 花開(kāi)有時(shí) 閱讀(628) | 評(píng)論 (7) | 編輯 收藏 用Groovy讀XML文件。
摘要: 用Groovy讀XML文件。 閱讀全文
posted @ 2007-09-25 10:12 花開(kāi)有時(shí) 閱讀(1973) | 評(píng)論 (0) | 編輯 收藏 Ok!用DOM寫(xiě)XML文件!
摘要: 用DOM寫(xiě)XML文件! 閱讀全文
posted @ 2007-09-25 10:11 花開(kāi)有時(shí) 閱讀(1425) | 評(píng)論 (0) | 編輯 收藏 成功!用SAX讀取XML文件。
摘要: 成功!用SAX讀取XML文件。 閱讀全文
posted @ 2007-09-24 16:55 花開(kāi)有時(shí) 閱讀(1981) | 評(píng)論 (1) | 編輯 收藏 成功!用DOM讀取XML文件。
摘要: 成功!用DOM讀取XML文件。 閱讀全文
posted @ 2007-09-24 16:54 花開(kāi)有時(shí) 閱讀(2203) | 評(píng)論 (0) | 編輯 收藏 失敗!讀取XML文件
摘要: 失敗!讀取XML文件 閱讀全文
posted @ 2007-09-24 11:28 花開(kāi)有時(shí) 閱讀(1720) | 評(píng)論 (0) | 編輯 收藏 AbstractGame類(lèi)分析
摘要: JME提供了一個(gè)包:com.jme.app,這個(gè)包里提供了一些開(kāi)發(fā)一個(gè)JME應(yīng)用程序的基本類(lèi),其中AbstractGame類(lèi)是基本的基本,這個(gè)包中的其他類(lèi)都是直接或間接繼承這個(gè)類(lèi)。 閱讀全文
posted @ 2007-09-24 11:25 花開(kāi)有時(shí) 閱讀(828) | 評(píng)論 (7) | 編輯 收藏 把JME程序“嵌入”到SWT界面
摘要: 但是在一些應(yīng)用中,我需要把JME的顯示結(jié)果在圖形用戶(hù)界面(比如說(shuō)用Swing或者SWT/Jface做的圖形用戶(hù)界面)上顯示出來(lái),而不是又重新彈出一個(gè)窗口--這樣怪麻煩,也不方便用戶(hù)操作。對(duì)于Swing,JME提供了有一套方法可以方便的把JME程序的顯示效果在Swing做的界面是顯示出來(lái)(具體做法可參考JME提供的例子),但是對(duì)于SWT,JME就沒(méi)有說(shuō)明該怎么做了(似乎對(duì)于SWT來(lái)說(shuō)有些不公平)。雖然沒(méi)有說(shuō)明,但是實(shí)際上我們還可以通過(guò)以Swing為過(guò)渡,使SWT實(shí)現(xiàn)這樣的功能。不過(guò)這樣好像有些麻煩了,因?yàn)樽訣clipse3.2后,SWT提供了一個(gè)類(lèi)--GLCanvas,可以使OpenGL在SWT的界面上繪制3D圖形。這樣就沒(méi)有問(wèn)題了,JME可以直接在SWT界面中繪制圖形圖像,因?yàn)镴ME本身是封裝了OpenGL的API。
閱讀全文 posted @ 2007-08-08 16:57 花開(kāi)有時(shí) 閱讀(1360) | 評(píng)論 (0) | 編輯 收藏 MonkeyWorld3D--JME輔助開(kāi)發(fā)工具
前天我發(fā)了一篇《JME麻煩之一:模型》,說(shuō)是在JME中組織模型太麻煩,沒(méi)有像界面開(kāi)發(fā)那樣的所見(jiàn)即所得編輯器。昨天我上JME官網(wǎng)上看了看,卻發(fā)現(xiàn)原來(lái)官網(wǎng)上提供的MonkeyWorld3D軟件正是這類(lèi)工具。下載下來(lái)使用看看。給我的感覺(jué)是太麻煩,拖動(dòng)不方便,像移動(dòng)模型、轉(zhuǎn)動(dòng)模型、大小變換之類(lèi)的操作的不方便。導(dǎo)入模型也不方便,還需要一個(gè)個(gè)導(dǎo)入。真是還不如我在程序里手工輸入數(shù)據(jù)調(diào)試來(lái)得便捷。不方便的原因也許是我對(duì)這軟件不熟悉、不熟練,如果可能的話(huà)真想看看熟練的人是怎么做的,但是這連一個(gè)說(shuō)明怎么使用的文檔都沒(méi)有。開(kāi)源就是這方面不好。
另外說(shuō)一下,這個(gè)軟件是用SWT與JFace做的界面。 MonkeyWorld3D下載地址:這里 posted @ 2007-08-03 15:58 花開(kāi)有時(shí) 閱讀(1328) | 評(píng)論 (0) | 編輯 收藏 JME麻煩之一:模型
最近把JME例子的源代碼看了一遍,對(duì)使用JME有了初步的了解,看完之后就打算自己編一個(gè)例子試試。
使用JME進(jìn)行3D開(kāi)發(fā)無(wú)非就是先用3DMax之類(lèi)的軟件進(jìn)行3D建模,然后把建好的模型通過(guò)JME中相應(yīng)的類(lèi)轉(zhuǎn)化為JME理解的形式,再在顯示屏?xí)r顯示出來(lái),最主要的部分一是建模,二是對(duì)模型的操作。 今天通過(guò)寫(xiě)一個(gè)例子,發(fā)現(xiàn)模型的轉(zhuǎn)化并不困難,幾行代碼就搞定了,但是對(duì)模型在屏幕中應(yīng)該顯示多大和應(yīng)該放在什么位置卻不好把握。比如說(shuō)我要顯示一臺(tái)筆記本電腦,由于我要操作筆記本--按筆記本電腦的某個(gè)鍵要產(chǎn)生相應(yīng)的響應(yīng),所以我不能在建模中把筆記本的按鍵“建”為一個(gè)整體,我需要把筆記本電腦的基礎(chǔ)建立起來(lái),再把每個(gè)按鍵建立起來(lái),然后在JME中把按鍵“加”到筆記本電腦的基礎(chǔ)上--這樣才能對(duì)筆記本電腦進(jìn)行操作,比如說(shuō)按一個(gè)有按下去的動(dòng)作,那么各個(gè)按鍵和位置基礎(chǔ)的位置和它們之間的大小關(guān)系就要符合常理才有真的感覺(jué)。但是在JME中好像沒(méi)有那么“智能”能使物體之間的相互關(guān)系符合常理,那應(yīng)該怎么辦呢?在JME中,物體之間的位置是靠三維空間坐標(biāo)設(shè)定的(也就是x,y,z),大小是按比例設(shè)定的(也就是百分比,1為原模型大小),那么如果我要使物體之間的位置、大小關(guān)系符合常理,就要通過(guò)很多次的嘗試才有可能成功,這使我感到非常麻煩。如果我有很多物體需要顯示,那么我不是非常頻繁的嘗試嗎?就像是如果沒(méi)有可視化進(jìn)行界面編輯,那么要做一個(gè)美觀的界面將會(huì)是一件多么痛苦的事,想想就知道在這上面要花費(fèi)很多時(shí)間。 在官網(wǎng)上看例子,看有的出現(xiàn)了這個(gè)問(wèn)題,想找找看,結(jié)果上面一句話(huà)把我給噎回去了:為什么要放在這里呢?那是因?yàn)榻?jīng)過(guò)了很多次試驗(yàn)得到的(原文大意)。 我不知道3DMax之類(lèi)的軟件在建模時(shí)是不是可以直接把模型的建立符合常理(我不負(fù)責(zé)建模),如果能符合常理的話(huà)直接導(dǎo)入就好了,但就我今天用別人做的模型寫(xiě)的程序來(lái)看,還是需要我進(jìn)行調(diào)整的。 不過(guò)好像JME官網(wǎng)上有一個(gè)MonkeyWorld3D的軟件,可能是管3D可視化設(shè)計(jì)的,以前下過(guò),但沒(méi)弄懂怎么用。明天上官網(wǎng)看看,找找有沒(méi)有這方面的解決辦法。 不知道有哪位仁兄有這方面的經(jīng)驗(yàn),望稍稍告知一二,在下在這里多謝了。 posted @ 2007-08-02 00:26 花開(kāi)有時(shí) 閱讀(1547) | 評(píng)論 (7) | 編輯 收藏 使用SWT寫(xiě)一個(gè)基于JGroup的簡(jiǎn)單局域網(wǎng)聊天程序
摘要: JGroup簡(jiǎn)要說(shuō)明:JGroup是一種可靠的群組通訊工具,用Java實(shí)現(xiàn)。JGroup以IP多播為基礎(chǔ)并且提供可靠性和群組功能。 在JGroup中有一個(gè)Chat.java類(lèi),是基于Swing的一個(gè)簡(jiǎn)單的局域網(wǎng)聊天的例子。在這里我按照這個(gè)例子的把局域網(wǎng)聊天的功能用SWT實(shí)現(xiàn)。 本以為不會(huì)出現(xiàn)什么問(wèn)題但是在實(shí)現(xiàn)的時(shí)候發(fā)現(xiàn)兩個(gè)同局域網(wǎng)的客戶(hù)端不能互連,找不到對(duì)方。在調(diào)試的時(shí)候發(fā)現(xiàn)只要是使用了SWT... 閱讀全文
posted @ 2007-07-28 09:50 花開(kāi)有時(shí) 閱讀(3123) | 評(píng)論 (2) | 編輯 收藏 JMonkeyEngine宣傳片
JME,全稱(chēng)JMonkeyEngine,是一個(gè)3D游戲引擎,具體介紹請(qǐng)看這http://www.aygfsteel.com/jrkui188/archive/2007/07/25/132174.aspx
posted @ 2007-07-26 17:20 花開(kāi)有時(shí) 閱讀(1847) | 評(píng)論 (2) | 編輯 收藏 JME介紹以及用Eclipse進(jìn)行JME開(kāi)發(fā)
摘要: JME,全稱(chēng)JMonkeyEngine,是一個(gè)開(kāi)源的3D引擎,其網(wǎng)址是www.jMonkeyEngine.com,其本身是用java編寫(xiě)的,好像封裝了OpenGLAPI。
有人說(shuō)用java編寫(xiě)的程序性能不及用C++與C編寫(xiě)的程序,更不用說(shuō)像3D這樣極需要性能的游戲了。因此很少有人用java進(jìn)行大型3D游戲的開(kāi)發(fā),大多數(shù)3D游戲不是用C++就是用C編寫(xiě)的(從市面上的3D游戲類(lèi)書(shū)籍就可以看出,基本看不到j(luò)ava的蹤影)。 對(duì)此,我也不知道到底java編寫(xiě)的3D游戲能不能“敵的過(guò)”用傳統(tǒng)語(yǔ)言編寫(xiě)的3D游戲,畢竟我才剛接觸這方面的東西。實(shí)際上我私底下也認(rèn)為,性能應(yīng)該是java的一個(gè)弱項(xiàng),畢竟java的傳統(tǒng)優(yōu)勢(shì)不在這里(不過(guò)好像自從java6出來(lái)以后,速度有了比較大的提升--希望如此,我可不希望等我做出東西來(lái)后卡的要死)。 至于為什么要用JME,答案是項(xiàng)目要求,無(wú)可奈何。不過(guò)人家既然是開(kāi)源的,看看別人的源代碼對(duì)能力的提高也很有好處,不是嗎?而且3D也很有趣啊。 閱讀全文 posted @ 2007-07-25 13:30 花開(kāi)有時(shí) 閱讀(6564) | 評(píng)論 (17) | 編輯 收藏 博客開(kāi)張! 花開(kāi)有時(shí),花落有時(shí),來(lái)有時(shí),去有時(shí)。不撕扯,只關(guān)切;不紀(jì)念,只牽掛;不感動(dòng),只明白;不尋找,只記得。 posted @ 2007-07-23 15:33 花開(kāi)有時(shí) 閱讀(140) | 評(píng)論 (0) | 編輯 收藏 |
|