TableColumnExt extends TableColumn implements UIDependent { public void putClientProperty(Object key, Object value) { if (key == null) throw new IllegalArgumentException("null key"); if ((value == null) && (getClientProperty(key) == null)) { return; } Object old = getClientProperty(key); if (value == null) { getClientProperties().remove(key); } else { getClientProperties().put(key, value); } firePropertyChange(key.toString(), old, value); } TableColumnExt();  TableColumnExt(int modelIndex);  TableColumnExt(int modelIndex, int width);  TableColumnExt(int modelIndex, int width,
                          TableCellRenderer cellRenderer, TableCellEditor cellEditor);  TableColumnExt(TableColumnExt columnExt); void setHighlighters(Highlighter... highlighters); Highlighter[] getHighlighters(); void addHighlighter(Highlighter highlighter); void removeHighlighter(Highlighter highlighter); @Override boolean getResizable(); void setEditable(boolean editable); boolean isEditable(); void setPrototypeValue(Object value); Object getPrototypeValue(); void setComparator(Comparator<?> comparator); Comparator<?> getComparator(); void setSortable(boolean sortable); boolean isSortable(); void setToolTipText(String toolTipText); String getToolTipText(); void setTitle(String title); String getTitle(); void setVisible(boolean visible); boolean isVisible(); void setHideable(boolean hideable); boolean isHideable(); void putClientProperty(Object key, Object value); Object getClientProperty(Object key); @Override void updateUI();  }
@Test(expected= IllegalArgumentException.class) public void testPutClientPropertyExc() { columnExt.putClientProperty(null, "somevalue"); }
@Test public void testClientPropertyNotification() { PropertyChangeReport report = new PropertyChangeReport(); columnExt.addPropertyChangeListener(report); Object value = new Integer(3); columnExt.putClientProperty("somevalue", value); assertTrue(report.hasEvents()); assertEquals(1, report.getEventCount("somevalue")); }