今天发现一个新问题:当设置表头的背景色的时候,颜色没有完全填充到表头当中,如下图所示:

代码:

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设置表头背景色相关推荐

  1. table thead tr设置表头背景色未完全覆盖的问题

    参考文章:http://blog.chinaunix.net/uid-22414998-id-2876249.html 我想要的效果如下: 实际却如下: 列头之间的那条白线很是不爽 解决方法,给tab ...

  2. Java修改JTable单元格背景色

    修改思路 JTable单元格的渲染都通过TableCellRenderer这个接口进行,因此最合适的方式是通过继承默认的DefaultTableCellRenderer类并添加自己想要的功能. 通过查 ...

  3. (Table)操作:Element-ui 中 Table 表格的设置表头/去除下标线/设置行间距等属性的使用及 slot-scope=“scope“ 的使用案例

    Ⅰ.Element-ui 提供的Table组件与想要目标情况的对比: 1.Element-ui 提供Table组件情况: 其一.Element-ui 自提供的Table代码情况为(示例的代码): // ...

  4. vue+elementui系统利用Export2Excel.js将表格内容导出到excel,并设置表头文字水平垂直居中

    写在前面:这是纯前端导出,导出的表格是二级表头,内容是四级单元格(单元格内有四小格),这几个点学会之后应该能适应大部分导出excel的需求了.本次功能记录真实有效.对于之前没接触过导出excel需求的 ...

  5. Excel 2010单元格中设置表头

    大家在做报表的时候,似乎都遇到过这样的问题,就是在一个单元格中如何设置表头: 其中包括一条斜杠的,两条斜杠的,N 条斜杠的,很多斜杠似乎没什么用.如图: 不知道C1能不能用到,这里只是举个例子. 首先 ...

  6. CSS设置页面背景色

    CSS设置页面背景色 设置页面的背景色 CSS通过设置body标记的background-color属性来实现,背景色主要突出页面的主题,跟前景的文字颜色相配合. 具体的设定方法和文字颜色值的设定一样 ...

  7. Java 为 Excel 中的行设置交替背景色

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:牛人 20000 字的 Spring Cloud 总结,太硬核了~ 作者:Jazzz 链接:https://ww ...

  8. 由设置body线性背景色引发的问题-----当声明文档类型时,对body设置线性背景色,页面背景色无法整体线性过渡...

    问题:当声明文档类型时,对body设置线性背景色,页面背景色无法整体线性过渡 不声明文档类型时,对body设置线性背景色 <HTML> <head> <meta char ...

  9. React Native 设置RGBA背景色

    React Native 设置RGBA背景色: 可以先用Mac自带吸色工具,获取RGB值,然后设置背景如下:backgroundColor: 'rgba(52, 52, 52, 0.8)',透明度值也 ...

最新文章

  1. 怎么用python画简单的图-使用Python中的Turtle库绘制简单的图形
  2. 测试人员必学的软件快速测试方法(三)
  3. 实战SSM_O2O商铺_21【商铺列表】Dao层开发
  4. boost::type_erasure相关的测试程序
  5. [C++] 转义序列
  6. RFC(一系列以编号排定的文件)
  7. jenkins的JAVA简单顺序配置git仓库
  8. css页面布局的感想,css布局实践感想(示例代码)
  9. Tech.Ed上海会场都结束了!
  10. 电子邮件地址验证:详细解释,生产质量WPF文本框代码
  11. java掠夺_Editing Java版指南/村庄与掠夺 (section)
  12. 注意!下个月开始 GitHub 新建存储库的默认分支就不叫“master”了!
  13. HTML参考系列(1)-文本格式化标签
  14. Java Script学习 6(转)
  15. 【GNN】百度「NLP」面试的一点总结
  16. Linux服务跟随启动,关于linux服务启动与自启动
  17. 机器学习评价指标 ROC与AUC 的理解和python实现
  18. Java 实现十进制数转换为二进制
  19. 苹果手机QQ扫正常二维码404
  20. 使用react 写一个 仿淘宝 图片放大镜效果

热门文章

  1. 一些关于GPS的论文和期刊
  2. 美国科技界最受瞩目华人高管沈向洋官宣!微软之后他去哪儿了?
  3. 阿里P8 谈微服务的应用架构设计
  4. 物联网领域 百度云与阿里云对比
  5. 车载以太网 - SomeIP - 初识 - 01
  6. c语言wscript.echo用法,WScript.Shell和一种替换方法(如何从 HTA 中启动应用程序?)...
  7. android . 代码设置背景
  8. Diskgenius专业版英文破解(绝对能用)
  9. 通过加速度与磁力计计算方位角
  10. Individual Tree Segmentation Method Based on Mobile Backpack LiDAR Point Clouds