BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #29500同步于 2014/4/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

不调Swing里的JTextArea控件,怎么做一个编辑框出来

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