4

SwingX-1.6.2 にアップデートしましたが、1.6 では発生しなかった問題が見つかりました。JXTable セルの色が奇妙に見えます。色には代替ストライピング (HighlighterFactory.createAlternateStriping) を備えたハイライターを使用し、テキスト、フォントの設定には DefaultTableCellRenderer のサブクラスを使用します...

1.6.1 以降、カスタム セル レンダラーが設定されている場合、蛍光ペンの色は無視されるようです。ドキュメントにはハックがあると書かれていますが、機能しません。

これに対する解決策はありますか?

4

3 に答える 3

4

SwingX でのカスタム セル レンダリングの場合、

  • これまでにないサブクラス xxRenderer
  • サブクラス JXTable (JXList、JXTree/Table も含まれない)

その代わり

  • StringValue を実装/使用して、テキスト、アイコンなどの「コンテンツ」の側面を構成します。
  • 蛍光ペンを使用/実装して、色、フォント、ペインターなどの「視覚的」側面を構成します
  • 条件付きの視覚的装飾が必要な場合は、HighlightPredicate を実装/使用し、それを使用して Highlighter を構成します。
  • StringValue および/または Highlighter を使用して xxRenderer を構成する

編集

サポートされていないレンダリング コンポーネント タイプが必要な場合は、ComponentProvider を実装します。プロバイダーは厳密な契約 (保証されたプロパティ値のリセット、StringValue の尊重など) を実行する必要があるため、これは少し手間がかかりますが、コンポーネント タイプごとに 1 回だけ必要です。完了すると、同じプロバイダーをすべてのタイプのコレクション コンポーネント (リスト JXList、JXComboBox、JXTree/Table) で使用できます。

于 2011-06-13T10:51:45.907 に答える
0

SSCCE では問題を再現できませんでしたが、(非常に複雑な) アプリケーションでは、Java の DefaultTableCellRenderer の代わりに SwingX の DefaultTableRenderer から継承したレンダラーを使用して解決まし

于 2011-05-28T07:13:29.470 に答える
0

JXTable が強調表示を行う方法はわかりませんが、いつでも自分で行うことができます。テーブル行のレンダリングを参照してください。

于 2011-05-27T14:53:54.227 に答える