Re: [問題] 關於Vector數問

作者: bleed1979 (十三)   2014-06-04 03:09:07
我還沒開始動手做,寫完這篇文章還沒睡著(凌晨3點)應該就會了。
但我要告訴你,以我目前的sense,我的思考歷程為何。
首先,資料應該是列處理,列是橫的,行是直的。
如果這個首先有共識之後,我們開始思考。
雖然我不是426,但我把文字編輯器改名為文本編輯器。
思考1:斷字。
文本:Java是物件導向語言。編輯器自然由物件單位組成。單位上容許我改它的文本。
編輯器:可以由PC基本輸入來改變內容。基本輸入是鍵盤和滑鼠。
思考2:資料儲存。
如原文所述,放在Vector。先不要想太深,只要是個容器就好。
所以我的很多物件全部放在Vector裡面。
注意!我用很多表示,這些物件都是一個個的單位,只是全部放在容器裡面。
思考3:定位問題。
這是思考1的衍生。由於我要用滑鼠隨意在編輯器上點任意一點就會FOCUS。
所以我先在google和stackoverflow上查了第一個問題。
google的複合關鍵字:java object windows focus
思考4:用什麼物件當單位。
這個問題將決定User(可能是你的老師,同學)對你的文字編輯器的感覺。
諸如好不好用,編輯效率高不高等等。
由於我需要有反白功能,所以我先選Java Swing裡的JTextArea或JTextField。
所以我又google了一下:java swing jtextfield no border
截至目前的思考已經可以開始做了。
但最最重要是要思考下面這點。在你完成你的專案之後。。。
思考5:別人怎麼做的。
google關鍵字:java implement text editor
你會發現這已經有pdf的著作可以下載,且可能不是上面思考的方式。
但,我非常希望你能先有做到思考4,也實作出自己的專案後才去觀摩別人怎麼寫。
目的要訓練思考,和自己動手作。否則以後google不到該怎麼辦?
以上,供參考。
※ 引述《jh961202 (阿電)》之銘言:
: 各位好,初次發文,請多指教
: ===============
: 是這樣的,小弟是資工系學生,這學期初學Java,
: 目前正在寫一個Project,因為會用到Vector,所以有自行上網爬文和讀javadoc
: 但是,難免還是有一些地方不太了解,還請大家指點~
: (為了讓大家比較了解我的問題,請容我說明部分專案的內容~)
: ==================
: 概要:這是一個類似文字編輯器的程式,可以隨時輸入/插入/修改/刪除文字
: 資料皆以行為單位處理
: 所有資料皆存在一個Vector中 // Vector<String> data = new Vector<String>() ;
: (註:資料就只是存在記憶體,不提供存檔功能~)
: 問題:
: 1.就以上面的new的方式而言,當我要輸入第一筆資料時,
: 可否使用insertElementAt( something, 0 ) ; 這樣子?
: // String something = new String() ,並假設裡面有東西
: 如果不行,是否要修改new的部分,先行配給空間?
: 2.承上題,假設今天已經有一些資料在該Vector中,然後我又要放資料
: (例如,現在內有5筆資料,要從第2和第3筆中間再插入2筆)
: 使用上面的函數的話,Vector是否會自動「增加空間」到7格?還是會發生錯誤?
: 3.要是我new了一個500格的Vector,但是只用到前面50格 // 51格之後沒資料
: 那麼當我執行size() ; 的時候,他會輸出500還是50?
: =============================
: 另外,純屬個人興趣,想再補充一個和本文標題比較無關的問題:
: 有些程式只允許內部複製貼上,無法複製到其他地方去,也無法從外部複製東西進去
: 實作上大概是用什麼達成的?
: 以上問題,還麻煩各位大大解答!謝謝!
作者: IhateOGC (我討厭)   2014-06-04 03:18:00
拍拍...
作者: Killercat (殺人貓™)   2014-06-04 03:23:00
其實四人幫的Design Pattern就是拿文字編輯器當例子
作者: bleed1979 (十三)   2014-06-04 03:25:00
比較建議原po能有自己的一版才去看別人版本會比較好。
作者: Expsun (無限燃燒)   2014-06-04 06:12:00
本篇超有心...
作者: lovdkkkk (dk)   2014-06-04 08:50:00
推 能有自己的一版才去看別人版本

Links booklink

Contact Us: admin [ a t ] ucptt.com