如何为用java编写的文本编辑器实现自动完成?

我正在尝试创建一个文本编辑器,比如使用java在mips程序集中进行编码的程序,我混淆了这一点我试图提供像eclipse那样的控制空间function。例如当用户输入时add $s1 ,然后按ctrl + Space,我将替换此字符串: "add $s1 , $s2 , $s3"与他输入的内容! (这是一个例子..我知道add可以是直接类型指令:D),我正在使用hashmap将键击绑定到我的JTextPane中实际发生的内容,如:

 InputMap inputMap = textPane.getInputMap(); KeyStroke key = KeyStroke.getKeyStroke('some keys') ; inputMap.put(key, 'some action') ; 

好吧问题是,当我想为我的程序实现Ctrl + Space时,我使用这个:

 key = KeyStroke.getKeyStroke(Event.CTRL_MASK , KeyEvent.VK_SPACE) ; inputMap.put(key, DefaultEditorKit.insertContentAction); 

但是我可以在哪里选择,应该插入什么字符串而不是模式的已经键入的部分? 换句话说,insertContentAction从哪里带来字符串? 我该如何定义应该替换哪些String? 当按下Ctrl + Space时,甚至还有其他更好的替换方法吗? (我要求的是一种将字符串模式插入jTextPane的方法,而不是实现模式匹配的算法)
提前致谢 :)

您可以获取文本窗格的Document以进行严格控制的更改,例如这些。 该Document还有一些您可以自己监听的有用事件。