JTable设置表头背景色
今天发现一个新问题:当设置表头的背景色的时候,颜色没有完全填充到表头当中,如下图所示:
代码:
table.getTableHeader().setBackground(new Color(51, 102, 255));
该代码的效果如上所示。
想要的效果是:
首先设置表头的高度:
Dimension size = table.getTableHeader().getPreferredSize();
size.height = 32;//设置新的表头高度32
table.getTableHeader().setPreferredSize(size);
设置表格表头背景色和表头内容居中:
/*** * @param table* 表格* @param columnIndex* 要设置的列下标* @param c* 颜色*/
public static void setTableHeaderColor(JTable table, int columnIndex, Color c) {TableColumn column = table.getTableHeader().getColumnModel().getColumn(columnIndex);DefaultTableCellRenderer cellRenderer = new DefaultTableCellRenderer() {/** serialVersionUID */private static final long serialVersionUID = 43279841267L;@Overridepublic Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,boolean hasFocus, int row, int column) {setHorizontalAlignment(JLabel.CENTER);((DefaultTableCellRenderer) table.getTableHeader().getDefaultRenderer()).setHorizontalAlignment(DefaultTableCellRenderer.CENTER);// 表头内容居中return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);}};cellRenderer.setBackground(c);column.setHeaderRenderer(cellRenderer);
}
最终的效果:
完整代码:
/*** 设计表格的样式类* @author **/
public class TableStyleUI {public static void makeFace(JTable table) {DefaultTableCellRenderer renderer = new DefaultTableCellRenderer(){/**serialVersionUID*/private static final long serialVersionUID = 1234579841267L;@Overridepublic Component getTableCellRendererComponent(JTable table,Object value, boolean isSelected,boolean hasFocus,int row, int column) {if(row%2==0){setBackground(new Color(202,241,245));}else{setBackground(new Color(255,255,255));}setHorizontalAlignment(JLabel.CENTER);// 表格内容居中((DefaultTableCellRenderer) table.getTableHeader().getDefaultRenderer()).setHorizontalAlignment(DefaultTableCellRenderer.CENTER);// 列头内容居中table.getTableHeader().setFont(new Font("微软雅黑", Font.PLAIN, 13));table.getTableHeader().setResizingAllowed(true);table.setRowHeight(26);//设置行高return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);}};Dimension size = table.getTableHeader().getPreferredSize();size.height = 32;//设置新的表头高度32table.getTableHeader().setPreferredSize(size);for (int i = 0; i < table.getColumnCount(); i++) {TableColumn col = table.getColumn(table.getColumnName(i));col.setCellRenderer(renderer);setTableHeaderColor(table,i,new Color(51, 102, 255));}TableStyleUI.setTableHeaderColor(table,0,Color.RED);//把表头的第1列设为红色TableStyleUI.setTableHeaderColor(table,1,Color.YELLOW);//把表头的第2列设为黄色TableStyleUI.setTableHeaderColor(table,2,Color.GREEN);//把表头的第3列设为绿色 TableStyleUI.setTableHeaderColor(table,3,Color.ORANGE);//把表头的第4列设为橙色}/*** 该方法主要实现了表格中表头的背景色的设计,表头内容的居中效果* * @param table* 表格* @param columnIndex* 要设置的列下标* @param c* 颜色*/public static void setTableHeaderColor(JTable table, int columnIndex, Color c) {TableColumn column = table.getTableHeader().getColumnModel().getColumn(columnIndex);DefaultTableCellRenderer cellRenderer = new DefaultTableCellRenderer() {/** serialVersionUID */private static final long serialVersionUID = 43279841267L;@Overridepublic Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,boolean hasFocus,int row, int column) {setHorizontalAlignment(JLabel.CENTER);// 表格内容居中((DefaultTableCellRenderer) table.getTableHeader().getDefaultRenderer()).setHorizontalAlignment(DefaultTableCellRenderer.CENTER);// 列头内容居中return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);}};cellRenderer.setBackground(c);column.setHeaderRenderer(cellRenderer);}
}
JTable设置表头背景色相关推荐
- table thead tr设置表头背景色未完全覆盖的问题
参考文章:http://blog.chinaunix.net/uid-22414998-id-2876249.html 我想要的效果如下: 实际却如下: 列头之间的那条白线很是不爽 解决方法,给tab ...
- Java修改JTable单元格背景色
修改思路 JTable单元格的渲染都通过TableCellRenderer这个接口进行,因此最合适的方式是通过继承默认的DefaultTableCellRenderer类并添加自己想要的功能. 通过查 ...
- (Table)操作:Element-ui 中 Table 表格的设置表头/去除下标线/设置行间距等属性的使用及 slot-scope=“scope“ 的使用案例
Ⅰ.Element-ui 提供的Table组件与想要目标情况的对比: 1.Element-ui 提供Table组件情况: 其一.Element-ui 自提供的Table代码情况为(示例的代码): // ...
- vue+elementui系统利用Export2Excel.js将表格内容导出到excel,并设置表头文字水平垂直居中
写在前面:这是纯前端导出,导出的表格是二级表头,内容是四级单元格(单元格内有四小格),这几个点学会之后应该能适应大部分导出excel的需求了.本次功能记录真实有效.对于之前没接触过导出excel需求的 ...
- Excel 2010单元格中设置表头
大家在做报表的时候,似乎都遇到过这样的问题,就是在一个单元格中如何设置表头: 其中包括一条斜杠的,两条斜杠的,N 条斜杠的,很多斜杠似乎没什么用.如图: 不知道C1能不能用到,这里只是举个例子. 首先 ...
- CSS设置页面背景色
CSS设置页面背景色 设置页面的背景色 CSS通过设置body标记的background-color属性来实现,背景色主要突出页面的主题,跟前景的文字颜色相配合. 具体的设定方法和文字颜色值的设定一样 ...
- Java 为 Excel 中的行设置交替背景色
点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:牛人 20000 字的 Spring Cloud 总结,太硬核了~ 作者:Jazzz 链接:https://ww ...
- 由设置body线性背景色引发的问题-----当声明文档类型时,对body设置线性背景色,页面背景色无法整体线性过渡...
问题:当声明文档类型时,对body设置线性背景色,页面背景色无法整体线性过渡 不声明文档类型时,对body设置线性背景色 <HTML> <head> <meta char ...
- React Native 设置RGBA背景色
React Native 设置RGBA背景色: 可以先用Mac自带吸色工具,获取RGB值,然后设置背景如下:backgroundColor: 'rgba(52, 52, 52, 0.8)',透明度值也 ...
最新文章
- 怎么用python画简单的图-使用Python中的Turtle库绘制简单的图形
- 测试人员必学的软件快速测试方法(三)
- 实战SSM_O2O商铺_21【商铺列表】Dao层开发
- boost::type_erasure相关的测试程序
- [C++] 转义序列
- RFC(一系列以编号排定的文件)
- jenkins的JAVA简单顺序配置git仓库
- css页面布局的感想,css布局实践感想(示例代码)
- Tech.Ed上海会场都结束了!
- 电子邮件地址验证:详细解释,生产质量WPF文本框代码
- java掠夺_Editing Java版指南/村庄与掠夺 (section)
- 注意!下个月开始 GitHub 新建存储库的默认分支就不叫“master”了!
- HTML参考系列(1)-文本格式化标签
- Java Script学习 6(转)
- 【GNN】百度「NLP」面试的一点总结
- Linux服务跟随启动,关于linux服务启动与自启动
- 机器学习评价指标 ROC与AUC 的理解和python实现
- Java 实现十进制数转换为二进制
- 苹果手机QQ扫正常二维码404
- 使用react 写一个 仿淘宝 图片放大镜效果
热门文章
- 一些关于GPS的论文和期刊
- 美国科技界最受瞩目华人高管沈向洋官宣!微软之后他去哪儿了?
- 阿里P8 谈微服务的应用架构设计
- 物联网领域 百度云与阿里云对比
- 车载以太网 - SomeIP - 初识 - 01
- c语言wscript.echo用法,WScript.Shell和一种替换方法(如何从 HTA 中启动应用程序?)...
- android . 代码设置背景
- Diskgenius专业版英文破解(绝对能用)
- 通过加速度与磁力计计算方位角
- Individual Tree Segmentation Method Based on Mobile Backpack LiDAR Point Clouds