2012-01-04 65 views
1

我有一個DocumentListener可以訪問包含文檔的JTextPane。在某些情況下,DocumentListener想要彈出一個以用戶輸入的字符串開頭的命令列表。如何查找JTextPane中偏移量的顯示位置(x,y)?

DocumentEvent具有字符偏移量,但我需要將其轉換爲X,Y位置以正確定位彈出窗口。

當前代碼使用textPane.modelToView(offset)來獲取一個矩形來獲取位置,但這有時會拋出NullPointerExceptions。

有沒有另一種方法來做這種轉換?

+0

對不起,昨晚我錯過了你的部分問題。我編輯了我的答案 - 現在可能更有幫助。 – Paul 2012-01-05 13:35:42

回答

2

嘗試JTextPane.modelToView。去其他方式,你會使用JTextPane.viewToModel

哎呀...我錯過了你說你已經在使用的部分modelToView。我相信只有在組件呈現並可見時才能使用轉換函數。那可能會導致你的NPE?

2

當前代碼使用textPane.modelToView(offset)來獲取矩形來獲取位置,但是有時會拋出NullPointerExceptions。

在SwingUtilities.invokeLater中圍繞彈出窗口顯示和modelTOView()調用。我猜你有時會問位置,但視圖佈局尚未完成。

相關問題