可以在不使用JTextArea的情况下在java中构建一个简单的文本编辑器吗?

时间:2012-03-06 18:08:05

标签: java swing textarea text-editor

根据我在IT部门的最终项目,我有问题。我必须在不使用JTextArea(GUI Java)的情况下编写一个简单的文本编辑器(如记事本),我必须创建自己的JTextArea ..

创意/主题=自己的文字编辑器

算法=还没有任何想法

数据结构=绳索(二叉树成员)

要求=没有JTextArea的打字......

这可能吗?面板(或其他类似的东西)是否有监听器或让听众做到这一点? 简单地思考,第一步我只是想尝试在面板上打字,绝对需要算法,但到目前为止我还没有得到正确的算法..这可能吗?

我的想法是,对于将输入存储到树中的文本..是否为我的数据结构的绳索(二叉树的成员)?

感谢您的帮助...

1 个答案:

答案 0 :(得分:5)

这是可能的。

按照您的提及JPanel附加KeyListenerMouseListener

您需要一个模型(Document)。对于最简单的情况,可以是StringBuilder,您可以在其中添加内容并显示StringBuilder内容。

您需要插入位置(int字段)来指示编辑应该发生的位置。

您需要使用字段字段来保留要在编辑器中使用的所有字体信息。

覆盖paintComponent()并使用FontMetrics来衡量文字并计算必要的宽度/高度。首先,我将创建一个没有换行的文本区域。

实现viewToModel / modelToView方法。对于给定的插入位置,它们应计算给定x,y和x,y的插入符号的位置。