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

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

【问题讨论】:

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

标签: java colors


【解决方案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 选项。可悲的是,该选项的名称并不是真正的自我解释。谢谢。
猜你喜欢
  • 2011-06-11
  • 2012-01-03
  • 2012-12-29
  • 1970-01-01
  • 2013-03-15
  • 2012-04-27
  • 1970-01-01
  • 2012-01-02
  • 2013-05-28
相关资源
最近更新 更多