当前位置: 首页 > 面试题库 >

如果使用Java满足特定条件,如何将颜色设置为特定行?

郝玄天
2023-03-14
问题内容

我有一个jtable。(表格摘要)。其中一列是EXPIRY。我想用当前日期已经过期的客户端突出显示该行。

我已经掌握了逻辑,但是我无法使行变成红色或任何其他颜色。这是我的代码:

         int count = (tableSummary.getRowCount());
         NumberFormat formatter = new DecimalFormat("###,###");          
         String no = formatter.format(count);
         txtNo.setText(no);

            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");     
            Calendar cal  = Calendar.getInstance();           
            String expDateString = sdf.format(cal.getTime()).toString();

            for(int i=0; i<=tableSummary.getRowCount()-1; i++){
                String nnn= tableSummary.getModel().getValueAt(i, 6).toString();   
                System.out.println(nnn);
                int res = nnn.compareTo(expDateString); 
                    if(res>=0){
                        System.out.println("if ni " + (res>=0));
                    }
                    else{ 
                        System.out.println("else ni" + (res>=0));
                        rowrenderer.setBackground(Color.RED);


                    }                        
            }

谁能帮我这个?因为它是我界面的主要亮点之一。提前致谢 !!:)


问题答案:

在以下链接中,您可以找到要执行的操作的示例:http
:
//www.roseindia.net/java/example/java/swing/SadingRows.shtml

您必须改写并在返回的prepareRenderer()JTable添加backgroundColor Component

PS:为以后参考,如果您包含更多代码,将会更容易。您的rowrenderer= 的定义

编辑

代替您的常规JTable table = new JTable(model)声明,请使用以下命令(prepareRenderer如果您需要其他颜色,请更改方法中的逻辑):

JTable table = new JTable(model) {
    public Component prepareRenderer(TableCellRenderer renderer, int Index_row, int Index_col) {
        // get the current row
        Component comp = super.prepareRenderer(renderer, Index_row, Index_col);
        // even index, not selected
        if (Index_row % 2 == 0 && !isCellSelected(Index_row, Index_col)) {
            comp.setBackground(Color.lightGray);
        } else {
            comp.setBackground(Color.white);
        }
        return comp;
    }
};


 类似资料:
  • 问题内容: 特别是我的图像在透明的情况下都是纯黑色的。我想在绘制图像时为图像分配简单的颜色,以便将黑色区域更改为新颜色。 我尝试使用仅返回所需颜色的RGBImageFilter,但出现了问题,根本没有绘制任何内容。(ColourFilter扩展了RGBImageFilter,并仅在其filterRGB()方法中返回设置的颜色。) 问题答案: 查看AlphaComposites,尤其是DST_IN:

  • 问题内容: 我曾经只使用可以执行查询的Tomcat和JSP页面,然后将查询结果分配给数组或对象,然后通过响应将数据传递到客户端。 在客户端jsp代码中,我可以执行以下操作: $ {errorMessage} 然后是“这是错误!” 消息将会显示。 我想对REST JAX-RS GlassFish v3做同样的事情。 这导致了我从未见过的神秘异常。 那么,如何将用户重定向到report.jsp并传递“

  • 我正在做一个小的OpenCV项目,从手机摄像头中检测某种颜色的线条。 null 这些是我想使用的函数,但不能安静地确定如何填补缺失的位。 这是在处理来自CvVideoCamera实例的图像时,从智能手机应用程序调用的processImage函数 我无法理解这里的文档,因为C++方法签名没有方法字段 任何帮助都将不胜感激。

  • 每个代理都有一个私有布尔变量“Happy?”。如何用[Happy?=True]计算特工人数? 就餐时有没有直接的方法?或者我遍历了所有的代理,然后逐个计算? 更新: 我尝试过全局调度方法:https://repast.github.io/docs/RepastReference/RepastReference.html#schedule-全球的 当我使用ContextBuilder中的@schdu

  • 希望我不会把事情搞复杂。我编写了以下SQL,返回用户他们最近的事务满足一个条件(TRANS_TYPE NOT IN(4,6,21,23)或DESTORIT_OPTION&64<>64)。 我通过使用 前面代码中的sub查询将返回所有用户的所有事务,并按DESC顺序对其进行排序,外部SELECT将通过检查rank 1事务来显示满足条件的用户。 我想要的是像这样的东西 FOREACH user如果用户

  • 我以前使用Netlogo,有一些非常好的内置方法,允许我从总人口中筛选和控制所需的代理。(见:http://ccl.northwestern.edu/netlogo/docs/dictionary.html#agentsetgroup).例如,我可以很容易地用简单的代码在模拟中命令不同级别的人员代理,例如: 在Repast中,是否有专门为方便控制代理集而构建的方法列表?