有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我正在尝试创建一个类似文本编辑器的程序,用于使用java在mips汇编中进行编码,我有点搞混了,这是我试图提供eclipse的控件空间功能的部分。例如,当用户输入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从何而来?如何定义应替换的字符串?或者,当按下Ctrl+Space时,还有其他更好的替换方法吗? (我想要的是一种将字符串模式插入jTextPane的方法,而不是实现模式匹配的算法)
提前感谢:)


共 (1) 个答案

  1. # 1 楼答案

    您可以get文本窗格的^{}进行严格控制的更改,例如:。Document也有一些有用的事件,您可以监听