gpt4 book ai didi

java - 如何在 Java 中的 JTextPane 中创建自动完成弹出窗口?

转载 作者:搜寻专家 更新时间:2023-11-01 04:05:19 25 4
gpt4 key购买 nike

我正在创建一个 SQL 编辑器。我正在使用 JTextPane 作为编辑器。我想像 Eclipse 一样为表名等实现自动完成。

最佳答案

我认为在另一个组件之上显示信息的合适类是 JPopupMenu,它已经正确处理分层以显示自身。 JPopupMenu 有一个 show() 方法,该方法将其“父”组件作为参数,它会在该组件的坐标空间中显示自己。由于您希望显示一系列术语供用户选择,因此菜单似乎很合适。

要检查文本更改,您需要将 DocumentListener 添加到由 JTextPane 包装的文档中;您可以使用 getDocument() 访问它。

要找出光标(实际上是插入符号)的位置,您可以使用 getCaretPosition()。这会将插入符在文本流中的位置作为 int 返回。您可以使用 modelToView() 将该位置转换为实际 (x,y) 坐标。这反过来会告诉您在哪里显示菜单。

您可以使用 addKeyListener() 来捕获 JTextPane 上的键盘事件,例如点击 Ctrl-Space .

所有这些的结合应该能让你做你想做的事。

关于java - 如何在 Java 中的 JTextPane 中创建自动完成弹出窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1915869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com