6

私は JXTable を使用しており、JTable の DefaultRenderers に基づいてこれを行う方法を知っていますが、HighlighterPipeline に基づいて JXTable に適した方法で行う方法を知りたいです。

テーブルにオブジェクトのリストが表示されており、各行は 1 つのオブジェクトを表しています。特定のタイプのオブジェクトを表示する行に別の色を付けたいと思います。

ColorHighlighterを使用する必要があるようです。しかし、「1行おきに色を付ける」などの単純な蛍光ペン以外に、この例は見つかりません。

JTable/TableModel パラダイムには「行オブジェクト」のようなものがないため、行番号が必要ですが、それができれば、述語を簡単にテストして true/false を返して、ハイライターに開始するかどうかを伝えることができます。 .

誰かがこれを機能させるための正しい方向性を理解するのを手伝ってくれますか?

4

1 に答える 1

4

気にしないで、私はそれを理解しました。ComponentAdapter を適切に使用する方法を理解するのが難しかっただけです。

JXTable table = ...
final List<Item> itemList = ...

final HighlightPredicate myPredicate = new HighlightPredicate() {
      @Override 
      public boolean isHighlighted(
            Component renderer, 
            ComponentAdapter adapter) {

            Item item = itemList.get(adapter.row);
            return testItem(item);
      }

      public boolean testItem(Item item) { ... }
}

ColorHighlighter highlighter = new ColorHighlighter(
      myPredicate,
      Color.RED,   // background color
      null);       // no change in foreground color

table.addHighlighter(highlighter);
于 2012-03-20T19:22:18.650 に答える