我正在创建一个SQL编辑器。我正在使用JTextPane作为编辑器。我想实现自动完成表名等功能,就像Eclipse一样。
我正在创建一个SQL编辑器。我正在使用JTextPane作为编辑器。我想实现自动完成表名等功能,就像Eclipse一样。
JPopupMenu
,它已经正确处理层叠以显示自身。JPopupMenu有一个show()
方法,它将其“父”组件作为参数,并在该组件的坐标空间中显示自己。由于您想显示用户可以选择的术语选择,因此菜单似乎是合适的。JTextPane
包装的文档添加DocumentListener
;您可以使用getDocument()
访问它。getCaretPosition()
。它返回作为int
的文本流中插入符号的位置。您可以使用modelToView()
将该位置转换为实际的(x,y)坐标。这反过来会告诉您要显示菜单的位置。addKeyListener()
捕获您的JTextPane
上的键盘事件,例如按Ctrl - 空格。JTextPane
中的更改,以知道用户何时正在输入,并且您需要一个理解所键入内容的解析器,以便只在适当的时候提供该功能。