уборщицей (чем @ Mad) для персонализированного визуализатора в рендерере - реализовать средство рендеринга обертки вокруг значения по умолчанию: он делегирует всю конфигурацию по умолчанию, а не применяет пользовательские декорации. Выполнение этого сохраняет специфические визуальные эффекты LAF.
public static class HeaderRenderer implements UIResource, TableCellRenderer {
private TableCellRenderer original;
public HeaderRenderer(TableCellRenderer original) {
this.original = original;
}
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row,
int column) {
Component comp = original.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
comp.setFont(comp.getFont().deriveFont(Font.BOLD));
return comp;
}
}
Для использования, замены по умолчанию заголовке с оберточной визуализатора и обновления на изменения LAF:
// replace the inital default with our wrapper
TableCellRenderer original = table.getTableHeader().getDefaultRenderer();
table.getTableHeader().setDefaultRenderer(new HeaderRenderer(original));
// a propertyChangeListener that updates the wrapper
PropertyChangeListener pl = new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
// cleanup (to be on the safe side)
if (table.getTableHeader().getDefaultRenderer() instanceof HeaderRenderer) {
HeaderRenderer renderer = (HeaderRenderer) table.getTableHeader().getDefaultRenderer();
table.getTableHeader().setDefaultRenderer(renderer.original);
}
// invoke to make sure the ui delegate updated the header renderer
SwingUtilities.invokeLater(new Runnable() {
public void run() {
TableCellRenderer r = table.getTableHeader().getDefaultRenderer();
if (!(r instanceof HeaderRenderer)) {
table.getTableHeader().setDefaultRenderer(new HeaderRenderer(r));
table.getTableHeader().repaint();
}
}
});
}
};
// register the listener with the UIManager to get notified on LAF changes
UIManager.addPropertyChangeListener(pl);
-1 вы еще не читали на некоторые основы (в отношении ОО/Swing), как вам посоветовали сделать в более ранних вопросах, не так ли? Все же те же самые ошибки ... Что касается вашего вопроса здесь: _model_ не несет ответственности за визуальные эффекты, а также не отвечает за внешний вид своего заголовка, поэтому ваш фрагмент кода не связан с проблемой, о которой вы заявили – kleopatra