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