Gre*_*een 3 java autocomplete jtextpane
我正在创建一个SQL编辑器.我正在使用JTextPane作为编辑器.我想为Eclipse等表名等实现AutoCompletion.
我认为在另一个组件上显示信息的适当类是JPopupMenu,它已经正确处理分层以显示自己.JPopupMenu有一个show()方法,它将'parent'组件作为参数,它将在该组件的坐标空间中显示出来.由于您希望显示供用户选择的术语选择,因此菜单似乎是合适的.
要检查文本更改,您需要添加一个DocumentListener包含在JTextPane; 你可以使用它来访问它getDocument().
要找出光标(实际上是插入符号)的位置,您可以使用getCaretPosition().这将把插入符在文本流中的位置作为一个返回int.您可以使用modelToView()将该位置转换为实际(x,y)坐标.这反过来会告诉你在哪里显示你的菜单.
你可以addKeyListener()用来捕捉你的键盘事件JTextPane,比如击中Ctrl- Space.
所有这一切的组合应该可以让你做你想做的事情.