有 Java 编程相关的问题?

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

java更改JTable背景色

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

public class UiColors {
    public static Color BACKGROUND_COLOR_DARK = new Color(30,30,30);
    public static Color BACKGROUND_COLOR_LIGHT = new Color(70,70,70);
    public static Color GOLDEN_TEXT = new Color(255, 215, 0);
}

JTable的代码

JScrollPane mdScrolPane = new JScrollPane();
mdScrolPane.setBackground(UiColors.BACKGROUND_COLOR_DARK);
mdScrolPane.setOpaque(false);
mdScrolPane.setForeground(UiColors.BACKGROUND_COLOR_DARK);
contentPane.add(mdScrolPane, "cell 1 0 1 5,grow");

mdTableModel = new ReadOnlyTableModel();

for (String col : columnNames) {
    mdTableModel.addColumn(col);
}

marketDataTable = new JTable(mdTableModel);
marketDataTable.setFillsViewportHeight(true);
marketDataTable.setToolTipText("Quotes");
marketDataTable.setBorder(null);
marketDataTable.setForeground(new Color(255, 215, 0));
marketDataTable.setBackground(UiColors.BACKGROUND_COLOR_DARK);
marketDataTable.setOpaque(false);
mdScrolPane.setColumnHeaderView(marketDataTable);
mdScrolPane.setViewportView(marketDataTable);

enter image description here


共 (1) 个答案

  1. # 1 楼答案

    试试这句对我有用的话:

    mdScrolPane.getViewport().setBackground(UiColors.BACKGROUND_COLOR_DARK);
    

    并尝试在JscrollPanel``声明之前替换以下代码:

    替换以下代码位置:

    mdTableModel = new ReadOnlyTableModel();
    
    for (String col : columnNames) {
        mdTableModel.addColumn(col);
    }
    
    marketDataTable = new JTable(mdTableModel);
    marketDataTable.setFillsViewportHeight(true);
    marketDataTable.setToolTipText("Quotes");
    marketDataTable.setBorder(null);
    marketDataTable.setForeground(new Color(255, 215, 0));
    marketDataTable.setBackground(UiColors.BACKGROUND_COLOR_DARK);
    marketDataTable.setOpaque(false);
    

    要在以下日期之前完成:

    JScrollPane mdScrolPane = new JScrollPane();