2012-01-04 14 views
1

私はドキュメントを含むJTextPaneにアクセスできるDocumentListenerを持っています。 DocumentListenerは、ユーザによって入力された文字列で始まるコマンドのリストをポップアップしたい場合があります。JTextPaneでオフセットの表示位置(x、y)を見つけるにはどうすればよいですか?

DocumentEventには文字オフセットがありますが、ポップアップを適切に配置するには、これをX、Y位置に変換する必要があります。

現在、コードはtextPane.modelToView(offset)を使用して矩形を取得して位置を取得していますが、これはNullPointerExceptionをスローしています。

この変換を行う別の方法はありますか?

+0

申し訳ありませんが、私は昨夜あなたの質問の一部を見逃しました。私は自分の答えを編集しました。おそらくもっと役立つかもしれません。 – Paul

答えて

2

お試しJTextPane.modelToViewそれ以外の方法はJTextPane.viewToModelを使います。

おっと...既にmodelToViewを使用していたと言った部分が見つかりませんでした。私はあなたのコンポーネントがレンダリングされ可視であるときにのみ変換関数を使うことができると信じています。それがあなたのNPEを引き起こしているのでしょうか?

2

現在のコードでは、場所を取得するための矩形を取得する(オフセット)textPane.modelToViewを使用していますが、これは時間でNullPointerExceptionsがを投げています。

SwingUtilities.invokeLaterのポップアップ表示とmodelTOView()呼び出しを囲みます。私はあなたがいつもポジションを求めていますが、レイアウトはまだ完成していないと思います。

関連する問題