UPDATE ButtonCellRenderer ( 4) , 2, 3. , .
, , , , , . , JTextArea ( JTextField). , , . .
, getHeaderRect(int col) of JTableHeader, super.getHeaderRect() . paint() BasicTableHeaderUI, .
, , .
, . , .. .
EDIT. Metal LaF, :
final TableCellRenderer defaultRenderer = getTableHeader().getDefaultRenderer();
getTableHeader().setDefaultRenderer(new DefaultTableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
JLabel c = (JLabel) defaultRenderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if (column == 1)
c.setBorder(BorderFactory.createMatteBorder(1, 1, 1, 0, Color.gray));
else if (column == 2) {
c.setBorder(BorderFactory.createMatteBorder(1, 0, 1, 1, Color.gray));
c.setText(null);
} else
c.setBorder(BorderFactory.createMatteBorder(1, 1, 1, 1, Color.gray));
return c;
}
});