1

Java Swing コンポーネントを含むアプリケーションでは、JTextPane編集不可の内部JScrollPaneに、ユーザーがいくつかの基準を入力できるいくつかのフィールドがあります。ユーザーが特定のボタンまたはメニュー項目をクリックするJTextPaneと、指定された基準を満たすドキュメントのセクションが検索され、一致が見つかった場合、そのセクションが強調表示されます。

その部分は解決されました。関連するドキュメント セグメントを見つけ、その開始位置と終了位置を (整数オフセットで) 把握し、強調表示することができます。

しかし、強調表示されたセグメントが画面からスクロールされた可能性があるため、JScrollPane の表示部分内にスクロールする必要があります。仕事をするように見えるメソッドscrollRectToVisible(Rectangle)JComponentあるようですが、テキストドキュメントの位置整数から に変換する方法がわかりませんRectangle

これは編集不可の JTextPane であり、強調表示されたセグメントにカーソルを移動したくないことに注意してください (ユーザーはとにかくカーソルを見ることができません)。セグメントを JScrollPane の可視領域内に表示したいだけです。

4

2 に答える 2

2

あなたの場合に使用できる1つのオブジェクトを返すことができるmodelToView (...)を使用できます。Rectangle

同じことに関する@camickrによる一例を次に示します

ここにもう1つの

于 2012-07-02T18:18:40.007 に答える
0

テキスト行が同じ高さの場合、Rectangle の y 値はドキュメントの位置 * 行の高さです。

テキスト行が同じ高さでない場合、Rectangle の y 値は、ドキュメントの位置までの行の高さの合計ですが、ドキュメントの位置は含まれません。

Rectangle の x 値はゼロか、テキストにとって意味のあるオフセットになります。

于 2012-07-02T16:56:56.820 に答える