如何更改 JTable 的空白空间颜色?

Posted

技术标签:

【中文标题】如何更改 JTable 的空白空间颜色?【英文标题】:How to change a JTable's empty space color? 【发布时间】:2020-10-11 14:02:24 【问题描述】:

我正在尝试在我的应用中创建 JTable。到目前为止,我已经能够更改几乎所有我需要的设置,除了空白区域的颜色。我想更改颜色,使其与行的背景颜色相同。你是怎么做到的?

【问题讨论】:

那部分是JTable的父容器。由于您没有发布任何代码,因此我不能更具体。我认为您应该考虑发布minimal reproducible example。您可以edit您的问题并发布一些我可以复制、编译和运行的代码,这些代码将展示您的问题。 你好。这只是默认的 JTable,有几个模型修改。您可以在您的 IDE 中创建一个新的 JFrame,并使用 gui swing 编辑器放置一个表格,您将拥有最小的可重现示例。 (1-) 您可以在您的 IDE 中创建一个新的 JFrame,并使用 gui swing 编辑器放置一个表格,您将获得最小的可重现示例 - 也就是说不是论坛的工作方式。你是提出这个问题的人。如果您希望人们提供帮助,那么您可以根据您使用的代码发布您的“MRE”来展示问题。 【参考方案1】:

只检查jtable属性中的不透明

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。【参考方案2】:
import java.awt.Color;
import java.awt.Component;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;

public class TableExample 
    JFrame f;

    TableExample() 
        f = new JFrame();
        String data[][] =   "101", "Amit", "670000" ,  "102", "Jai", "780000" ,  "101", "Sachin", "700000"  ;
        String column[] =  "ID", "NAME", "SALARY" ;
        JTable jt = new JTable(data, column);

        jt.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() // alternate background color for rows
            public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
                    boolean hasFocus, int row, int column) 
                Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
                if (!isSelected)
                    c.setBackground(row % 2 == 0 ? Color.white : Color.lightGray);
                return c;
            ;
        );

        jt.setBackground(Color.red);
        jt.setFillsViewportHeight(true);
        jt.setBounds(30, 40, 200, 300);
        JScrollPane sp = new JScrollPane(jt);
        f.add(sp);
        f.setSize(300, 400);
        f.setVisible(true);
    

    public static void main(String[] args) 
        new TableExample();
    

【讨论】:

你好,图泰。查看您的代码后,我注意到我缺少什么:勾选组件属性中的fillsViewportHeigth 选项。可悲的是,该选项的名称并不是真正的自我解释。谢谢。

以上是关于如何更改 JTable 的空白空间颜色?的主要内容,如果未能解决你的问题,请参考以下文章

更改我的 JTable 中特定行的颜色

Java - Jtable - 不同颜色的单元格

更改单元格颜色而不更改其他单元格中的颜色(Jtable)

更改 JTable 中行的背景颜色

根据列值更改 JTable 行的背景颜色

更改从jar文件中获取的jtable中特定行的颜色