TableHeader: support column hover and pressed background and foreground colors (issue #636)

This commit is contained in:
Karl Tauber
2023-01-30 14:21:44 +01:00
parent 4a0bd2c09f
commit 1435469ee5
17 changed files with 148 additions and 14 deletions

View File

@@ -26,6 +26,8 @@ import java.util.function.Function;
import java.util.function.Predicate;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableColumnModel;
import javax.swing.table.TableRowSorter;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
@@ -1051,6 +1053,11 @@ class FlatThemePreviewAll
{
Function<Object, Object> uiDefaultsGetter;
@Override
protected JTableHeader createDefaultTableHeader() {
return new PreviewTableHeader( columnModel );
}
@Override
public void paint( Graphics g ) {
if( !Beans.isDesignTime() ) {
@@ -1061,5 +1068,26 @@ class FlatThemePreviewAll
} else
super.paint( g );
}
//---- class PreviewTableHeader ----
private class PreviewTableHeader
extends JTableHeader
{
PreviewTableHeader( TableColumnModel columnModel ) {
super( columnModel );
}
@Override
public void paint( Graphics g ) {
if( !Beans.isDesignTime() ) {
// needed for DefaultTableCellHeaderRenderer
FlatLaf.runWithUIDefaultsGetter( uiDefaultsGetter, () -> {
super.paint( g );
} );
} else
super.paint( g );
}
}
}
}

View File

@@ -926,6 +926,10 @@ TableHeader.focusCellBackground
TableHeader.font
TableHeader.foreground
TableHeader.height
TableHeader.hoverBackground
TableHeader.hoverForeground
TableHeader.pressedBackground
TableHeader.pressedForeground
TableHeader.separatorColor
TableHeader.showTrailingVerticalLine
TableHeaderUI