sclass TextChangingTableCellRenderer extends DefaultTableCellRenderer { O f; // func(S) -> S *(O *f) {} public Component getTableCellRendererComponent(JTable table, O value, boolean isSelected, boolean hasFocus, int row, int column) { Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); S s = strOrEmpty(value); setText(f == null ? s : str(callF(f, s))); ret c; } }