-1

JTable に 3 つの列があります。1 つの列が編集可能です。他の列は編集できません。編集可能な列は緑色で表示され、編集不可能な列は赤色で表示されます。DefaultRenderer私はクラスで試しましたが、うまくいきません。誰かがこれを知っているなら、私を助けてください。

4

1 に答える 1

2

これを行う方法はいくつかあります。次の1は、列1を灰色で表示します。

JTable table = new JTable() {
    public Component prepareRenderer(TableCellRenderer renderer,
                                     int rowIndex, int vColIndex) {
        Component c = super.prepareRenderer(renderer, rowIndex, vColIndex);
        if (vColIndex == 0) {//if first column
            c.setBackground(Color.red);
        } else {
            c.setBackground(Color.green);
        }
        return c;
    }
};

DefaultTableCellRendererまたは、次の2のようにクラスをオーバーライドすることができます

public class CustomTableCellRenderer extends DefaultTableCellRenderer
{
    public Component getTableCellRendererComponent (JTable table, Object obj, 
                         boolean isSelected, boolean hasFocus, int row, int column){
        Component cell = super.getTableCellRendererComponent(table, obj, 
                            isSelected, hasFocus, row, column);

        if (column == 0){
            cell.setBackground(Color.red);
        }
        else{
            cell.setBackground(Color.green);
        }
        return cell;
    }
}
于 2011-08-23T04:33:49.153 に答える