public class YourRender extends DefaultTableCellRenderer {
public Component getTableCellRendererComponent
(JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int column)
{
Component cell = super.getTableCellRendererComponent
(table, value, isSelected, hasFocus, row, column);
cell.setBackground( Color.lightGray);
return cell;
}}
public Component getTableCellRendererComponent
(JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int column)
{
Component cell = super.getTableCellRendererComponent
(table, value, isSelected, hasFocus, row, column);
cell.setBackground( Color.lightGray);
return cell;
}}
解决方案 »
- 一个奇怪的BUG,究竟为神马会出现这个问题
- 怎样用java调用IE,然后再得到网页的源代码。
- 新手.大家帮帮忙哈!为感!
- socket连接UNIX服务器的问题
- 用swing写界面时,如何让按钮看起来是平的而不是向外凸起的?
- 重分出击:要一个JTextpane里面的超链接,用鼠标点击,弹出一个保存对话框的代码。。。
- 高分下无勇夫呼?求MP3转MID程序例子!
- *.htm文件------->*.mht文件
- StringTokenizer 能分割中文字符吗?
- 50分!请教有关JB的几个简单问题?
- 关于一个jdbc的问题,初学java,请多关照!
- class a里要引用class b里的方法,该方法为public,除了建类class b 的instance来引用该方法外还有什么办法引用???
class MyCellRenderer extends DefaultTableCellRenderer {
private Color myColor;
privateint myRow; public MyCellRenderer(){
}
public void setColor(Color myColor){
this.myColor = myColor;
}
public void setRow(int myRow){
this.myRow = myRow;
}
public Component getTableCellRendererComponent (JTable t, Object value,
boolean isSelected, boolean hasFocus,int row,int column) {
if(this.myRow == row){
setBackground(this.myColor);
}
return super.getTableCellRendererComponent(t, value, isSelected, hasFocus, row, column);
}
}//end of class myCellRenderer //here is how I use to set color
public static void main(String[] args){
MyCellRenderer renderer = new MyCellRenderer();
//set cell(1,1) to red
this.setColor(renderer,1,Color.red);
//set cell(2,1) to black
this.setColor(renderer,2,Color.black);
}
public void setColor(MyCellRenderer renderer,int row,Color color){
renderer.setRow(row);
renderer.setColor(color);
jTable1.getColumnModel().getColumn(1).setCellRenderer(renderer);
jTable1.repaint();
} but the result is NOT cell(1,1) is red, cell(2,1) is black as that I expected. How to implement what I expect?
Hashtable hashColors=new Hashtable();
MyCellRenderer(){
}
public void setColor(int myRow,Color myColor){
if(myColor!=null){
DefaultTableCellRenderer renderers=new DefaultTableCellRenderer();
renderers.setBackground(myColor);
hashColors.put(""+myRow,renderers);
}
}
public Component getTableCellRendererComponent (JTable t, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
DefaultTableCellRenderer c=(DefaultTableCellRenderer)hashColors.get(""+row);
if(column==1&&c!=null){
return c;
}
else{
return super.getTableCellRendererComponent(t, value, isSelected, hasFocus, row, column);
}
}
}