有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

enter image description here


共 (2) 个答案

  1. # 1 楼答案

    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();
        }
    }
    
  2. # 2 楼答案

    只需检查jtable属性中的不透明部分