如何在JTextPane中找到偏移的显示位置(x,y)?

时间:2012-01-04 19:18:22

标签: java swing

我有一个DocumentListener,可以访问包含文档的JTextPane。在某些情况下,DocumentListener想要弹出一个以用户输入的字符串开头的命令列表。

DocumentEvent具有字符偏移量,但我需要将其转换为X,Y位置以正确定位弹出窗口。

目前,代码使用textPane.modelToView(offset)来获取一个矩形来获取位置,但这有时会抛出NullPointerExceptions。

还有另一种方法可以进行此转换吗?

2 个答案:

答案 0 :(得分:2)

试试JTextPane.modelToView。换句话说你要使用JTextPane.viewToModel

哎呀......我错过了你说你已经在使用modelToView的部分。我相信只有在渲染和显示组件时才能使用转换函数。这会导致你的NPE吗?

答案 1 :(得分:2)

  

目前,代码使用textPane.modelToView(offset)来获取一个矩形来获取位置,但这有时会抛出NullPointerExceptions。

在SwingUtilities.invokeLater中显示弹出窗口和modelTOView()调用。我猜你有时要求位置,但是视图布局尚未完成。