我正在使用netbeans及其gui builder来创建桌面应用程序.

为了在我的jTables中着色特殊单元格,我已经基于示例代码实现了自定义DefaultTableCellRenderer.到目前为止它的作用.

我的问题是覆盖函数“getTableCellRendererComponent()”的else情况.我不希望不在指定范围内的单元格变成“白色” – 我希望这些单元格以它们已有的颜色显示(例如,如果它们有,我不想将那些颜色更改为“白色”一直是“红色”).

如果有人可以帮助我,我会很高兴!

非常感谢提前.

斯特芬

class ColoredTableCellRenderer extends DefaultTableCellRenderer

{

/** constructor */

public ColoredTableCellRenderer(int rowToColorizeStart, int rowToColorizeStop, int columnToColorizeStart, int columnToColorizeStop, Color color)

{

mRowToColorizeStart = rowToColorizeStart;

mRowToColorizeStop = rowToColorizeStop;

mColumnToColorizeStart = columnToColorizeStart;

mColumnToColorizeStop = columnToColorizeStop;

mColor = color;

}

private int mRowToColorizeStart = 0;

public void setRowToColorizeStart(int rowToColorizeStart) {

mRowToColorizeStart = rowToColorizeStart;

}

public int getRowToColorizeStart() {

return mRowToColorizeStart;

}

private int mRowToColorizeStop = 0;

public void setRowToColorizeStop(int rowToColorizeStop) {

mRowToColorizeStop = rowToColorizeStop;

}

public int getRowToColorizeStop() {

return mRowToColorizeStop;

}

private int mColumnToColorizeStart = 0;

public void setColumnToColorizeStart(int columnToColorizeStart) {

mColumnToColorizeStart = columnToColorizeStart;

}

public int getColumnToColorizeStart() {

return mColumnToColorizeStart;

}

private int mColumnToColorizeStop = 0;

public void setColumnToColorizeStop(int columnToColorizeStop) {

mColumnToColorizeStop = columnToColorizeStop;

}

public int getColumnToColorizeStop() {

return mColumnToColorizeStop;

}

private Color mColor = Color.WHITE;

public void setColor(Color color) {

mColor = color;

}

public Color getColor() {

return mColor;

}

@Override

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {

Component cellComponent = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);

if( (row >= getRowToColorizeStart()) && (row <= getRowToColorizeStop()) && (column >= getColumnToColorizeStart()) && (column <= getColumnToColorizeStop()) && (isSelected == false) ) {

cellComponent.setBackground(getColor());

} else {

cellComponent.setBackground(Color.WHITE);

}

return cellComponent;

}

}

解决方法:

How to write a custom DefaultTableCellRenderer to colorize specific cells “only”, Java

代码行

谈论什么发生了

>是否选择了单元格(boolean isSelected)

>如果选择了单元格和/或具有Focus也是(boolean hasFocus)

>对于JTable中的行(int行)

>来自JTable的列(int列)

然后你可以改变字体,边框,颜色,图标e.i.

通知—>不要在XxxRenderer中更改对象值,永远不要尝试避免这种情况

编辑

> JTable有两个dimmension只定义了行,看看prepareRenderer

> prepareRenderer被指定用于行着色,my question can help you或here,不要忘记覆盖int modelRow = convertRowIndexToModel(row);,在大多数情况下你可以丢失索引模型v.s.查看,因为可以对JTable进行排序或过滤

标签:java,swing,jtable,background-color,tablecellrenderer

来源: https://codeday.me/bug/20190826/1726155.html

java 动态单元格涂色_如何编写自定义DefaultTableCellRenderer来着色特定单元格并“保留”其他单元格的颜色,Java...相关推荐

  1. 2023-02-11:给你两个整数 m 和 n 。构造一个 m x n 的网格,其中每个单元格最开始是白色, 请你用 红、绿、蓝 三种颜色为每个单元格涂色。所有单元格都需要被涂色, 涂色方案需要满足:

    2023-02-11:给你两个整数 m 和 n .构造一个 m x n 的网格,其中每个单元格最开始是白色, 请你用 红.绿.蓝 三种颜色为每个单元格涂色.所有单元格都需要被涂色, 涂色方案需要满足: ...

  2. c++设置单元格填充色_更改数据后单元格自动填充颜色,从此以后再也不用核对数据了...

    Hello,大家好,今天跟大家分享下如何实现更改数据后自动填充颜色.工作中我们每个人几乎都会遇到数据核对的问题,如果数据稀少核对起来还比较快,但是如果数据很多核对起来就会很浪费时间,但是如果我们对表格 ...

  3. c++设置单元格填充色_格式函数text,设置自定义格式的万金油

    在日常的数据处理统计中,我们知道,数据格式标准统一,是很重要的前提,如果数据混乱,那么,在后期的数据处理分析,excel就会耍脾气出错的.所以设置好数据格式,是相当重要的.今天,我们就来讲讲在自定义格 ...

  4. java动态分区分配算法,操作系统_动态分区分配算法课程设计_java版

    <操作系统_动态分区分配算法课程设计_java版>由会员分享,可在线阅读,更多相关<操作系统_动态分区分配算法课程设计_java版(13页珍藏版)>请在人人文库网上搜索. 1. ...

  5. java动态数组的实现的_基于Java的动态数组分析与实现

    动态数组 概念 基于Java提供的静态数组封装自己的动态数组,动态数组涉及的组成部分如下图所示. 组成部分解读data:静态数组,通过泛型支持多种类型的元素:private E[] data;. si ...

  6. java中的各行换色_隔行变换背景颜色和颜色预警

    需求说明 隔行变换背景颜色:单一背景颜色的报表会让报表浏览者产生眼晕的感觉,通过适当交替的背景色能增加视觉舒适度,也会给页面美工增色不少.此需求是报表展现时最普通最常见的需求. 颜色预警:报表中的某些 ...

  7. python画正方形并涂色_关于python使用cv画矩形并填充颜色同时填充文字

    原博文 2017-05-08 12:18 − font = cv2.FONT_HERSHEY_SIMPLEX # 使用默认字体 cv2.rectangle(im, (10, 10), (110, 11 ...

  8. 华为机试真题 Java 实现【数字涂色】

    目录 题目 思路 考点 Code 题目 疫情过后,希望小学终于又重新开学了,三年二班开学第一天的任务是将后面的黑板报重新制作. 黑板上已经写上了N个正整数,同学们需要给这每个数分别上一种颜色. 为了让 ...

  9. python画三角形并涂色_如何用python画叠加三角形?

    python中可以使用下面的程序实现画叠加三角形:import turtle def drawTriangle(num,len,flag):#flag用来调整画三角形的方向 flag*=-1 len/ ...

最新文章

  1. 【java】Lombok的使用
  2. 今天聊聊分布式锁 No.86
  3. HashMap 1.7 死循环过程
  4. 自动驾驶,不要再杀人了
  5. php 生成会员卡号,PHP实现生成唯一会员卡号
  6. VMware虚拟机XP系统安装图文教程
  7. IntelliJ IDEA 设置快捷键(Keymap)
  8. 新版本itunes如何设置iphone铃声
  9. 我总结了程序员转行得最有出路5个方向
  10. 139邮箱注册收费吗,什么VIP的邮箱安全又好用呢
  11. keep-alive的用法
  12. 移植u-boot到stm32f407
  13. 人力资源分析思维以及有必要学习数据分析吗?
  14. 汉得 HAP (HAND Application Platform)
  15. python networkx 边权重_networkx(Python)中基于边权重排序的相邻边
  16. 【深度学习小常识】什么是mAP?
  17. 最给人启迪的30条编程名言
  18. 安科瑞数据中心EMS 系统解决方案
  19. 使用android.view.TouchDelegate扩大View的触摸点击区域
  20. python,做一个汽车识别网,你还在担心认不出车标吗?

热门文章

  1. 北妈每日一学:ES6语法之 箭头函数(附免费学习资料)
  2. java j2se1.5_Java教程 用J2SE1.5建立多任务的Java应用程序
  3. 中科院单细胞分析算法开发博士带你做单细胞转录组分析
  4. Cinematic Tracking Title for fcpx(电影自适应伸展效果文字标题)
  5. python简短语法_python 简单语法入门
  6. 1.11 编程基础之二分查找 08 不重复地输出数 python
  7. desktop docker 无法卸载_在docker-for-desktop OSX上删除kubernetes集群
  8. input在type=number时去右边上下箭头
  9. 用python祝福父亲节_父亲节到来 最适合给年老的父亲祝福语
  10. Wireshark文档阅读笔记-WebSocket协议基本概念