如何在Java中的JTextPane中创建自动完成弹出窗口?
发布时间:2020-12-15 05:15:55 所属栏目:Java 来源:网络整理
导读:我正在创建一个SQL编辑器.我正在使用JTextPane作为编辑器.我想为 Eclipse等表名等实现AutoCompletion. 解决方法 我认为在另一个组件上显示信息的适当类是JPopupMenu,它已经正确处理分层以显示自己. JPopupMenu有一个show()方法,它将’parent’组件作为参数,
我正在创建一个SQL编辑器.我正在使用JTextPane作为编辑器.我想为
Eclipse等表名等实现AutoCompletion.
解决方法
我认为在另一个组件上显示信息的适当类是JPopupMenu,它已经正确处理分层以显示自己. JPopupMenu有一个show()方法,它将’parent’组件作为参数,它将在该组件的坐标空间中显示出来.由于您希望显示供用户选择的术语选择,因此菜单似乎是合适的.
要检查文本更改,您需要将DocumentListener添加到由JTextPane包装的文档中;你可以使用getDocument()访问它. 要找出光标(实际上是插入符号)的位置,可以使用getCaretPosition().这将把插入符在文本流中的位置作为int返回.您可以使用modelToView()将该位置转换为实际(x,y)坐标.这反过来会告诉你在哪里显示你的菜单. 您可以使用addKeyListener()来捕获JTextPane上的键盘事件,例如按Ctrl-Space. 所有这一切的组合应该可以让你做你想做的事情. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读