我有一个DocumentListener,可以访问包含文档的JTextPane。在某些情况下,DocumentListener想要弹出一个以用户输入的字符串开头的命令列表。
DocumentEvent具有字符偏移量,但我需要将其转换为X,Y位置以正确定位弹出窗口。
目前,代码使用textPane.modelToView(offset)来获取一个矩形来获取位置,但这有时会抛出NullPointerExceptions。
还有另一种方法可以进行此转换吗?
答案 0 :(得分:2)
试试JTextPane.modelToView。换句话说你要使用JTextPane.viewToModel。
哎呀......我错过了你说你已经在使用modelToView
的部分。我相信只有在渲染和显示组件时才能使用转换函数。这会导致你的NPE吗?
答案 1 :(得分:2)
目前,代码使用textPane.modelToView(offset)来获取一个矩形来获取位置,但这有时会抛出NullPointerExceptions。
在SwingUtilities.invokeLater中显示弹出窗口和modelTOView()调用。我猜你有时要求位置,但是视图布局尚未完成。