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