swing - 使用表格单元格标题颜色自定义 jtable 单元格渲染器

标签 swing colors header jtable look-and-feel

这个问题与previous post 非常相似我的。 我需要自定义 JTable 的某些单元格,使它们看起来像表头单元格。 我正在使用 Nimbus 的外观,并且正在尝试检索 JTable 编辑器的颜色:

public class HeaderCellRenderer extends JLabel implements TableCellRenderer{


    @Override
    public Component getTableCellRendererComponent(JTable table, Object value,
            boolean isSelected, boolean hasFocus, int row, int column) {

        System.out.println("OK");
        this.setOpaque(true);
        setBackground(UIManager.getColor("TableHeader.background"));
        return this;
    }

}

我关注这个post获取要提供给 getColor 方法的名称(“TableHeader.background”)。 不管我从现在开始做了什么,返回的颜色与我表格的标题单元格不一样。

你有什么想法吗?

编辑:

我注意到应该是渐变而不是颜色,但我找不到正确的键来使用。我看了this list .

最佳答案

典型外观的默认表头外观由 sun.swing.table.DefaultTableCellHeaderRenderer 的实例提供.您可以通过以下方式获取副本:

class HeaderRenderer implements TableCellRenderer {

    TableCellRenderer renderer;

    public HeaderRenderer(JTable table) {
        renderer = table.getTableHeader().getDefaultRenderer();
    }

    @Override
    public Component getTableCellRendererComponent(
        JTable table, Object value, boolean isSelected,
        boolean hasFocus, int row, int col) {
        return renderer.getTableCellRendererComponent(
            table, value, isSelected, hasFocus, row, col);
    }
}

您可以按照给定列的 type token 的常规方式安装它:

table.setDefaultRenderer(SomeObject.class, new HeaderRenderer(table));

关于swing - 使用表格单元格标题颜色自定义 jtable 单元格渲染器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6644739/

相关文章:

python - 如何使用 `colorbar` 调色板将 `networkx` 添加到 `seaborn`? ( python 3)

java - 添加 while 循环后程序/GUI 卡住

java - 如何在 JTextField 中设置财务代码文档过滤器

Bash 颜色可变输出

javascript - HTML/CSS/JS 将文本定位在背景之上的问题

html - 需要帮助居中导航栏

hadoop - 在Hive转换中传递表头

java - 将 Action 监听器添加到 JComboBox

java - JFrame 停止接收鼠标事件

c++ - 平均循环值(特别是 HSL 配色方案中的色调)