0

JTextPane使用して、MouseAdapterクリックされた文字の位置を取得する必要があります。を使用viewToModelすると、文字を直接クリックすると目的の位置が返されますが、の空の領域をクリックすると、行の最後の文字の位置が返されますJTextPane

文字をクリックしないときに最後の文字の位置を取得しないようにする方法を知っている人はいますか?

Hers は、位置を取得するコードです。

public void mouseClicked(MouseEvent e) {
    JTextPane editor = (JTextPane) e.getSource();
    Point pt = new Point(e.getX(), e.getY());
    int pos = editor.viewToModel(pt);
}
4

1 に答える 1

1

空の領域をクリックすると、どのような結果が期待されますか? 実際には、クリックしたポイントに最も近い位置を返します。

viewToModel() から位置を取得し、取得したオフセットを渡す modelToView() を使用できます。次に、返された長方形とクリックされたポイントを比較します。

于 2012-12-31T15:17:59.590 に答える