返回信息流RT
这是一条镜像帖。来源:北邮人论坛 / java / #29500同步于 2014/4/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
不调Swing里的JTextArea控件,怎么做一个编辑框出来
lzj0218
2014/4/22镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
稍微麻烦一些。我们以前的一个大作业是做文本编辑器,不许用编辑框空间。
首先是想想文本如何存储。整个作为一个大字符串,可以,但是低效。考虑用数组+链表、按行存储等各种结构来存储文本。
然后,文本的显示全靠绘图。字就是画上去的。调用提供的API来画文本应该可以。要计算每个字符的大小,以及每个字符的位置。光标位置也要类似地算。自动换行,计算起来比较麻烦,
还有就是交互。比如上下左右按钮移动光标,插入文本的时候如何修改下面的文本存储(链表的情况考虑每个节点存储几个字符,能做到又快又容易插入,以及一个节点存不下了,要“爆”掉,分裂成几个节点),还有删除的时候,底下的数据如何修改(比如合并节点、删除行等)。
还有,如果鼠标点击了屏幕上某个位置,那么光标移动到第几行第几个字符,都需要算出来。
还有就是实现“选择”,以及剪切、复制、粘贴。
中文对于C/C++来说可能是个难点。对于Java应该相对容易一些,毕竟char就能存中文。但输入法真让人头疼。
如果要实现语法标亮,考虑正则表达式之类的东东。
看来只能用画图的方法了
还想问一下,那输入法问题后来怎么解决的,多谢
【 在 nuanyangyang 的大作中提到: 】
: 稍微麻烦一些。我们以前的一个大作业是做文本编辑器,不许用编辑框空间。
: 首先是想想文本如何存储。整个作为一个大字符串,可以,但是低效。考虑用数组+链表、按行存储等各种结构来存储文本。
: 然后,文本的显示全靠绘图。字就是画上去的。调用提供的API来画文本应该可以。要计算每个字符的大小,以及每个字符的位置。光标位置也要类似地算。自动换行,计算起来比较麻烦,
: ...................
【 在 lzj0218 的大作中提到: 】
: 看来只能用画图的方法了
: 还想问一下,那输入法问题后来怎么解决的,多谢
:
我没有做这个大作业,做了别的。以上所述为隔壁同学的经验。