Каждый раз, когда я создаю пользовательский рендерер заголовка для JTable, он выглядит неправильно с внешним видом нимба. Заголовки таблиц по умолчанию имеют серебристый градиент, пользовательские средства визуализации не выглядят так. Раньше я просто избегал создания пользовательских рендереров заголовков. Можно ли скопировать внешний вид по умолчанию на мой новый пользовательский модуль визуализации? По сути, я хочу добавить флажок, и область вокруг него будет выглядеть как обычный заголовок столбца, а не просто серый. Я знаю, как добавить флажок и сделать его доступным для кликов. Спасибо
Пользовательский рендеринг заголовков JTable, который выглядит как другие заголовки с нимбом?
comment
Все еще интересует этот вопрос? :-)
- person AgostinoX   schedule 14.02.2012
Ответы (2)
Вы можете создать MyTableHeaderRendererPainter, расширяющий AbstractRegionPainter (javax.swing.plaf.nimbus.AbstractRegionPainter).
Посмотрите, как Nimbus стилизует свой Painter https://github.com/xsstomy/javacode/blob/master/javax/swing/plaf/nimbus/TableHeaderRendererPainter.java
Затем вы вызываете компонент вашего пользовательского рендерера
.setBackground(new MyTableHeaderRendererPainter());
Писать художников сложно. К сожалению, Nimbus TableHeaderRendererPainter не виден. Возможно, вы можете использовать Painter с другим внешним видом, чтобы получить приемлемый результат.
person
gute Fee
schedule
17.08.2019
Используйте средство визуализации заголовков по умолчанию из вашего tableHeader:
table.getTableHeader().getDefaultRenderer()
person
Thomas Morgner
schedule
28.04.2011
Это не поможет сохранить правильный внешний вид заголовка. На экране он будет отображаться по-другому.
- person Adrian Romanelli; 08.03.2016