2

JTableコンポーネントのtablecellrendererを実装したいのですが、セルデータに応じて異なる色を表示する必要があります。これを取得しましたが、選択したセルの色を変更できません。私はこれをやろうとしました:

public Component getTableCellRendererComponent(JTable table, Object value,
        boolean isSelected, boolean hasFocus, int rowIndex, int vColIndex)
{

    if (isSelected) {
        this.setBackground((Color)UIManager.get("Table.selectionBackground"));
        this.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
    } else {
        this.setForeground((Color)UIManager.get("Table.foreground"));  
        this.setBackground((Color)UIManager.get("Table.background"));  
        this.setBorder(BorderFactory.createEmptyBorder()); 
    } 
...
}

しかし、動作しません:S ..セルをクリックしても、JTableに何も変わらないため、問題はわかりません。

4

2 に答える 2

2

セル データに応じて異なる色を表示する JTable コンポーネントの tablecellrenderer を実装したい

投稿したコードはこれを行いません。基本的に、コードが行うことはすべて、レンダラーのデフォルトの動作を複製することです

テーブル行レンダリングアプローチの方が実装しやすいかもしれません。

于 2011-02-24T02:16:19.853 に答える
0

コンポーネントのベースとして JLabel を使用していると仮定すると、opaque も true に設定しない限り、背景を設定しても効果はありません。JLabels はデフォルトで不透明ではないため、背景を描画しません。

于 2011-03-02T19:03:34.320 に答える