
本文介绍两种在 JTable 的 TableCellRenderer 中实现「单元格内部分文字着色」的方法:一种是基于 HTML 标签的轻量级方案(推荐初学者使用),另一种是自定义 JComponent 重写 paintComponent 的高性能方案,并提供可直接运行的代码示例与适配建议。
本文介绍两种在 jtable 单元格中实现「单元格内部分文字着色」的方法:一种是基于 html 标签的轻量级方案(推荐初学者使用),另一种是自定义 jcomponent 重写 paintcomponent 的高性能方案,并提供可直接运行的代码示例与适配建议。
在 Swing 的 JTable 中,标准的 TableCellRenderer(如 DefaultTableCellRenderer)仅支持对整个单元格文本统一设置前景色(setForeground()),无法直接为子字符串单独着色。但通过合理利用 Swing 渲染机制,我们完全可以实现「同一单元格内数字变蓝、其余文字保持黑色」这类精细化样式需求。以下是两种经过实践验证的主流方案:
✅ 方案一:HTML + JLabel(简洁可靠,推荐首选)
JLabel 原生支持 HTML 渲染(需以 开头),这使得我们无需重绘即可通过标签嵌套实现局部样式控制。核心思路是:将原始字符串按规则切分为「普通文本」和「需高亮部分」,再用 包裹目标片段。
以下是一个完整、健壮的 TableCellRenderer 实现:
JLabel










