问题描述
我想在TableColumn中根据Editable属性来使我的TableColumn都变成灰色实现代码如下但就是不起作用哪位大侠做过这个特性的请指点!publicclassMyTableColumnextendsjavax.swing.table.TableColumn{protectedbooleaneditable=true;this.setCellRenderer(newEditableTableCellRenderer());publicvoidchangeBackColorToGray()throwsGenericException{EditableTableCellRendererrenderer=(EditableTableCellRenderer)this.getCellRenderer();if(renderer!=null){renderer.setEditable(false);}}publicclassEditableTableCellRendererextendsDefaultTableCellRenderer{Color_readonlyBackgroundColor=Color.GRAY;Color_readonlyForegroundColor=Color.BLACK;Color_editableBackgroundColor=Color.WHITE;Color_editableForegroundColor=Color.BLACK;boolean_editable=true;publicEditableTableCellRenderer(){JFormattedTextFieldtb=newJFormattedTextField();tb.setEditable(true);_editableBackgroundColor=tb.getBackground();_editableForegroundColor=tb.getForeground();tb.setEditable(false);_readonlyBackgroundColor=tb.getBackground();_readonlyForegroundColor=tb.getForeground();}publicvoidsetEditable(booleaneditable){this._editable=editable;if(this._editable){super.setForeground(_editableForegroundColor);super.setBackground(_editableBackgroundColor);}else{super.setForeground(_readonlyForegroundColor);super.setBackground(_readonlyBackgroundColor);}}}}