ローカル変数の名前を変更するときにEclipseが「新しい名前を入力し、 Enterキーを押してリファクタリングしてください」と表示するのと同じように、キャレット位置の下にツールチップを表示しようとしています。ツールチップはキャレットではなくマウスにバインドされているため、使用できないと想定しているToolTipManager.showTipWindow()
ため、目的に合わせてコードを調整する必要があります。ここで唯一の問題は、キャレットの位置をピクセル単位で計算することです。私が試みた:
Caret c = editor.getCaret();
Point location = c.getMagicCaretPosition();
のその後の使用はlocation
NPE を引き起こします。これはキャレットが表示されていないときに発生すると推測されるため、メソッドは信頼できません。TextArea の文字オフセットをポイント位置に変換する方法はありますか?