当前位置: 技术问答>java相关
如何改变一个JTABLE的每行的背景色?急!现再追加100分!
来源: 互联网 发布时间:2015-10-09
本文导语: 是一行一行的改变! 例如数据为 final Object[][] data = { {"A", "Campione", }, {"A", "Huml"}, {"B", "Walrath"}, {"B", "Lih"} }; JTABLE...
是一行一行的改变!
例如数据为
final Object[][] data = {
{"A", "Campione", },
{"A", "Huml"},
{"B", "Walrath"},
{"B", "Lih"}
};
JTABLE已经由此数据生成
想把第一和第2行背景改为红色
3,4为兰色!
怎么改??????
例如数据为
final Object[][] data = {
{"A", "Campione", },
{"A", "Huml"},
{"B", "Walrath"},
{"B", "Lih"}
};
JTABLE已经由此数据生成
想把第一和第2行背景改为红色
3,4为兰色!
怎么改??????
|
写下面的类.
public class MyTableRenderer extends DefaultTableCellRenderer {
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected,boolean cellHasFocus,
int row,int col) {
switch(row){
case 0:
case 1:
this.setBackground(Color.red);
break;
case 2:
case 3:
this.setBackground(Color.blue);
break;
}
if(isSelected){
//这里写如果选中后你想表现出来的效果;
}
if(isFocus){
//这里写如果获得焦点后你想表现出来的效果;
}
this.setText((String)object);
return this;
}
}
然后为你的table添加一个上面类的实例作为绘制器.
比如
JTable table = new JTable(data);
table.setDefaultRenderer(new String().getClass(),new MyTableRenderer());
试试看.
public class MyTableRenderer extends DefaultTableCellRenderer {
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected,boolean cellHasFocus,
int row,int col) {
switch(row){
case 0:
case 1:
this.setBackground(Color.red);
break;
case 2:
case 3:
this.setBackground(Color.blue);
break;
}
if(isSelected){
//这里写如果选中后你想表现出来的效果;
}
if(isFocus){
//这里写如果获得焦点后你想表现出来的效果;
}
this.setText((String)object);
return this;
}
}
然后为你的table添加一个上面类的实例作为绘制器.
比如
JTable table = new JTable(data);
table.setDefaultRenderer(new String().getClass(),new MyTableRenderer());
试试看.
|
http://www2.gol.com/users/tame/swing/examples/JTableExamples4.html
例子1
Colored Cell
例子1
Colored Cell