質問

私は現在、私はマウスがクリックされた場所を基にして、JEditorPane内のテキストの一部で位置を見つける必要がある問題を解決しようとしています。

基本的には、単語の上にユーザが右クリックして、私は言葉が何であるかを知る必要があるとき。これを行うには、私は、ユーザーがクリックしたテキスト内のどの位置を知る必要があります。しかし、私が行う方法を見つけ出すことはできません - 私は簡単のmousePressedメソッドに渡されたMouseEventからマウスの位置を取得することができます知っている、と私はあなたがテキストの一部の文字のインデックスを取得するには、これを変換することができますと言われていますこれます。

私はどちらか、私はそれが間違って使用しているか、それはこの方法では動作しませんので、しかし、これはテキスト内の誤った位置を私に戻って与えているJEditorPaneの上viewToModel()メソッドを試してみました。

任意のアイデア?

役に立ちましたか?

解決

viewToModel()を呼び出すと、これを行うには正しい方法です。

public void mouseClicked(MouseEvent e) {
    JEditorPane editor = (JEditorPane) e.getSource();
    Point pt = new Point(e.getX(), e.getY());
    int pos = editor.viewToModel(pt);
    // whatever you need to do here
}

他のヒント

私は自分自身でこの問題を解決してきました。それは、問題は、私はそれに間違ったポイントを渡したことで、viewToModel()は、私がここで使用する必要があります正確に何である判明します。

のMouseEventから、私は実際に私がgetPoint()メソッドを使用している必要があるときにポイントを動作するようにでgetLocationOnScreen()メソッドを使用していました。

この質問を読んで誰にも感謝します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top