加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何在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.

所有这一切的组合应该可以让你做你想做的事情.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读