通过构造新的列表现器可以达到上述效果
不够控制单个cell就是比较麻烦了下面代码是改变某行的颜色,楼主棵针对自己的应用改改
//新建列表现器------------------------//
DefaultTableCellRenderer tcr = new DefaultTableCellRenderer() {
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
if (row % 2 == 0)
setBackground(Color.white); //设置奇数行底色
else if (row % 2 == 1)
setBackground(new Color(206, 231, 255));
//设置偶数行底色
return super.getTableCellRendererComponent(table, value,
isSelected,
hasFocus, row, column);
}
};使用: try {
for (int i = 1; i < jTable1.getColumnCount(); i++) {
TableColumn column = jTable1.getColumn(jTable1.getColumnName(i));
column.setPreferredWidth(100);
column.setCellRenderer(tcr); //添加列表现器
}
}
catch (Exception e) {
System.out.println(e);
//格式调整出错,则不作处理,通过自动调整完成
}
不够控制单个cell就是比较麻烦了下面代码是改变某行的颜色,楼主棵针对自己的应用改改
//新建列表现器------------------------//
DefaultTableCellRenderer tcr = new DefaultTableCellRenderer() {
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
if (row % 2 == 0)
setBackground(Color.white); //设置奇数行底色
else if (row % 2 == 1)
setBackground(new Color(206, 231, 255));
//设置偶数行底色
return super.getTableCellRendererComponent(table, value,
isSelected,
hasFocus, row, column);
}
};使用: try {
for (int i = 1; i < jTable1.getColumnCount(); i++) {
TableColumn column = jTable1.getColumn(jTable1.getColumnName(i));
column.setPreferredWidth(100);
column.setCellRenderer(tcr); //添加列表现器
}
}
catch (Exception e) {
System.out.println(e);
//格式调整出错,则不作处理,通过自动调整完成
}
解决方案 »
- 各位大牛Javascript没学 可以先自学javaweb和框架吗 谢谢
- hibernate 批量删除问题
- J2EE可以做哪些东西?
- ejb如何部署,连接数据库
- Apache+Tomcat的性能问题
- 用excel做报表时候,怎样在excel中显示从数据库里读取的图片???
- 请问是否有开源的数据库查询组件?
- 在线等!我到入了一个包org.apache.xerces.parsers.DOMParser;编译通过,可运行出错!
- 在JBuilder8+Weblogic7 ReDeploy的奇怪问题!
- 怎样的步骤学好实体Bean?
- 在strust中使用jxl导出excel文件,如何直接写入到输出流?在线等.....
- 想用jboss开发cmp,用什么好用的工具可以生成程序代码、配置文件?
标志,然后再TableCellRenderer实现的
类中调用,满足标志条件的改变颜色,这样就不局限
在单数行,或者双数行了
遗憾阿。
重写的public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus,
int row, int column)方法中value即当前cell的对象的值.
有了这个值以后, 你可以根据值得信息做任何的设置. 比如当value大于1000时前景色设置为红色.
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
//调用super方法, 保证不需要关心的cell还是按照默认的方案描述
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
Number number = (Number)value;
if (number.longValue() > 1000) {
setForeground(Color.red);
} else {
setForegournd(UIManager.getColor("Label.foreground");
}
return this;
}
绝对动态!