私は自分自身の質問に自分自身で答える必要があるように見えます。
私はJRViewerクラスをオーバーロードされた(興味深いパネルのどれもがアクセス可能ではなかったので、実際にJRViewerのコードをコピー)し、次の操作を行うためにいくつかのハイライトする方法を追加しました:
テンプレートベースのJasperPrintデータを使用しています - 名前が示すように - テンプレート。つまり、テキストオブジェクトは独自のスタイルを持たず、テンプレートのスタイルを使用します。
これが、setForecolorが何もしなかった理由です.JRTemplatePrintElementの実装は単純空です。
しかし、テキストテンプレートでハイライトを設定すると、テンプレートインスタンスを共有するので、ハイライトされたテキストの完全な列になります。
代わりに、ハイライトされたオリジナルのコピーとして新しいテンプレートを作成し、強調表示されたプリント要素でそのテンプレートを使用します。 Btwでは、これらのジャスパー要素は実際にはclone()メソッドを使用できます。
ハッキングのような気分ですが、より良い方法はありません。
更新:
ただし、これはファイルベースの(仮想化された)レポートには厄介な副作用があります。 これらは、ページを歩いている間、要素に加えた変更を保存しているように見えます。 その間に視聴者が参照している要素(たとえば、ページを反転させるなど)をバーチャライザーで破棄すると、それ以上の変更は保存されません...
それで私は再考しました。 JasperのPageRendererによって描画されたGraphicsオブジェクトの上にハイライトを描画するだけです。
はるかに簡単で清潔です。背景を強調表示するだけではこのようには動作しません。