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;
}}
解决方案 »
- 第一次使用eclipse问题?
- java向数据库中插入数据为什么总会报错未找到存储过程xp_sendmail?
- 请不要使用if(a==true)或者if(true==a)
- java中的web.xml文件的问题
- 菜鸟提问......请朋友进来看看帮忙解决。。。。
- 昨天记错面试题目了,现在的是面试官出的.有谁可做??
- java连接sql2000问题-datetime类型
- 在设置了背景的JFrame上面添加一个Table怎么无法显示?
- 费解的问题啊~~~~~~~~~~~``谢谢大家啦
- 深度探索applet之签名技术 :)
- 关于一个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);
}
}
}