Module java.desktop

Interface TableCellRenderer

所有已知的实现类:
DefaultTableCellRenderer, DefaultTableCellRenderer.UIResource

public interface TableCellRenderer
这个接口定义了任何希望成为JTable单元格渲染器的对象所需的方法。
  • Method Summary

    Modifier and Type
    Method
    Description
    getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
    返回用于绘制单元格的组件。
  • Method Details

    • getTableCellRendererComponent

      Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
      返回用于绘制单元格的组件。在绘制之前,此方法用于适当地配置渲染器。

      TableCellRenderer 还负责渲染表示表格当前拖放位置的单元格。如果此渲染器关心渲染拖放位置,则应直接查询表格,看看给定的行和列是否表示拖放位置:

           JTable.DropLocation dropLocation = table.getDropLocation();
           if (dropLocation != null
                   && !dropLocation.isInsertRow()
                   && !dropLocation.isInsertColumn()
                   && dropLocation.getRow() == row
                   && dropLocation.getColumn() == column) {
      
               // 此单元格表示当前拖放位置
               // 因此可以特殊渲染,也许使用不同的颜色
           }
       

      在打印操作期间,将使用falseisSelectedhasFocus 值调用此方法,以防止选择和焦点出现在打印输出中。要根据表格是否正在打印来进行其他自定义,请检查从JComponent.isPaintingForPrint()返回的值。

      参数:
      table - 请求渲染器绘制的JTable;可以为null
      value - 要渲染的单元格的值。由具体的渲染器解释和绘制值。例如,如果value 是字符串 "true",它可以被渲染为字符串,也可以被渲染为已选中的复选框。null 是有效值
      isSelected - 如果要突出显示选择的单元格,则为true;否则为false
      hasFocus - 如果为true,则适当地渲染单元格。例如,如果单元格可以编辑,则在单元格上放置特殊边框,如果单元格正在编辑,则使用指示编辑的颜色进行渲染
      row - 正在绘制的单元格的行索引。在绘制标题时,row 的值为 -1
      column - 正在绘制的单元格的列索引
      返回:
      用于绘制单元格的组件。
      参见: