当前位置: 首页 > 知识库问答 >
问题:

JTable行背景颜色不改变为双或整数

阎咏思
2023-03-14

我正在使用以下代码更改JTable中一行的背景色。对于所有具有字符串值的单元格,行的颜色都会更改,但是对于具有整数值或双数值的单元格,行的颜色不会更改。

  private JTable getNewRenderedTable(final JTable table) {
        table.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() {
            @Override
            public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int col) {
                Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, col);
                String status = (String)table.getModel().getValueAt(row, index);
                if (Constants.seller.equals(status)) {
                    c.setBackground(Color.GRAY);
                    //setForeground(Color.WHITE);
                } else {
                    c.setBackground(table.getBackground());
                    c.setForeground(table.getForeground());
                }       
                return c;
            }   
        });
        return table;
    }

共有1个答案

郗唯
2023-03-14

尝试为Integer和Double注册相同的渲染器。这些类在默认情况下注册了单独的默认呈现程序。像这样的。

private JTable getNewRenderedTable(final JTable table) {
    table.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() {
        @Override
        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int col) {
            Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, col);
            String status = (String)table.getModel().getValueAt(row, index);
            if (Constants.seller.equals(status)) {
                c.setBackground(Color.GRAY);
                //setForeground(Color.WHITE);
            } else {
                c.setBackground(table.getBackground());
                c.setForeground(table.getForeground());
            }       
            return c;
        }   
    });
    table.setDefaultRenderer(Number.class, table.getDefaultRenderer(Object.class));
    table.setDefaultRenderer(Double.class, table.getDefaultRenderer(Object.class));
    return table;
}
 类似资料:
  • 所以我要做的是,根据最后一列内的值更改每行的颜色。 我已经找到了这个解决方案:改变JTable的背景色,效果非常好。 但除此之外,当第四列达到与第二列相同的值时,我想将行的颜色切换为绿色。 我用Cristian Marian的方法写了自己的课 仍然只有每列中的最后一个单元格变为绿色,而不是整个单元格。但是当我在这一行打卡时,整行都会切换颜色 最后一列中的值将由另一帧更改。 当最后一列中的值达到与第

  • 问题内容: 我有一个3列的JTable。我已经为所有3列设置了这样的代码(也许不是很有效?)。 在一个随机的背景颜色为每一行返回一个组件。 程序运行时如何将背景更改为其他随机颜色? 问题答案: 一种方法是存储模型中每一行的当前颜色。这是一个固定在3列3行的简单模型: 注意通话; 这将导致仅更新表的该行。 渲染器可以从表中获取模型: 更改行的颜色很简单:

  • 我试图在基于swing的GUI中更改的背景。我已将该表添加到中。但是,表格中没有单元格的区域不会改变颜色。我尝试更改滚动窗格的背景色和前景色。然而,这也无济于事。我需要编辑JTable的哪个组件来更改白色背景。下面是我代码的一部分。 JTable的代码

  • 您好,我是java jtable的新手。我正在寻找一种在我的程序中有效的方法,但我没有找到它的任何运气。这是我的Jtable 数据来自ms Access数据库,但我想改变状态列中值为“非活动”的行的背景/前景。我在网上找到了很多例子,但所有的例子在我的程序中都是不可能的。有人能帮帮我吗?这是我的模特 这是创建我的表的方法,以及我如何从数据库中获取数据 我该如何添加以这种方式重新绘制的表格?有人能举

  • 这是我的java文本,看起来有点出乎意料,但是我想改变按钮的背景颜色,这取决于答案是正确的还是错误的 属于“voortgang-button”的css } 然而;现在的问题是我做错了什么?我是一个刚开始的JavaScript程序员,也是荷兰人,所以请多包涵;).

  • 我添加了一个表,但问题是,面板没有显示其背景色。我试过设置滚动窗格的背景色等,但它不起作用。框架有一个按钮“验证”,单击该按钮时,在其下方显示一个表。在单击之前,表格将显示的部分为纯灰色。我希望整个部分是象牙背景。请帮我诊断这个问题。