繁体   English   中英

Java中的JTable着色特定网格线

[英]JTable coloring specific gridline in Java

我有这个8x8表格,并且我想用红色为表格最顶部的第一个和第二个单元格的网格上色。 我的问题可以做到吗?

编辑 :我删除了此,因为我认为这不是OP想要的。 我应OP的要求将其删除。

我有这个8x8表格,并且我想用红色为表格最顶部的第一个和第二个单元格的网格上色。 我的问题可以做到吗?

当然是。

一种方法是扩展现有的渲染器并重写getTableCellRendererComponent方法。

例如:

public class GridlineCellRenderer extends DefaultTableCellRenderer {

    @Override
    public Component getTableCellRendererComponent (
        JTable table,
        Object value,
        boolean isSelected,
        boolean hasFocus,
        int row,
        int column
    ) {
        final Component cell = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
        if ( row == 0 && (column == 0 || column ==1 ) {
            cell.setBackground( Color.RED );
        }
        return cell;
    }
}

然后,您需要警告JTable,您想将此渲染器用于某些类型的数据。

例如,如果您想将其用于包含Integer的单元格,则应该可以进行以下操作:

JTable myJTable = ...
myJTable.setDefaultRenderer(Integer.class, new GridlineCellRenderer() );

因为您只想根据位置而不是类型来影响某些单元格,所以请覆盖prepareRenderer()并为所需单元格返回一个带有红色Border的组件。 另请参阅如何使用表

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM