1 | public class DefaultHeaderRenderer extends DefaultTableCellRenderer {↵ | | 1 | public class BasicHeaderRenderer extends DefaultTableCellRenderer {↵
|
|
2 | private String name;↵ | | 2 | private ↵
|
|
3 | ↵ | | 3 | TableModelSorter sorter;↵
|
4 | private ImageIcon ascending = new AscendingIcon();↵ | | 4 | private ImageIcon ascending = new AscendingIcon();↵
|
|
5 | private ImageIcon descending = new DescendingIcon();↵ | | 5 | private ImageIcon descending = new DescendingIcon();↵
|
|
6 | private SortDecorator sorter;↵ | | 6 | private S↵
|
|
7 | public DefaultHeaderRenderer(SortDecorator sorter, String name) {↵ | | |
|
8 | ↵ | | 7 | tring name;↵
|
|
| | | 8 | public BasicHeaderRenderer(String name, TableModelSorter sorter) {↵
|
9 | super();↵ | | 9 | super();↵
|
|
10 | this.name = name;↵ | | 10 | this.name = name;↵
|
11 | this.sorter = sorter;↵ | | 11 | this.sorter = sorter;↵
|
|
12 | setHorizontalAlignment(SwingConstants.LEFT);↵ | | 12 | setHorizontalAlignment(SwingConstants.LEFT);↵
|
13 | setHorizontalTextPosition(SwingConstants.LEFT);↵ | | 13 | setHorizontalTextPosition(SwingConstants.LEFT);↵
|
|
14 | setOpaque(true); // MUST do this for background to show up.↵ | | |
|
|
15 | setBorder(UIManager.getBorder("TableHeader.cellBorder"));↵ | | |
|
16 | }↵ | | |
|
|
17 | ↵ | | 14 | }↵
|
|
18 | public Component getTableCellRendererComponent(JTable table, Object str,↵ | | 15 | public Component getTableCellRendererComponent(JTable table, Object ↵
|
19 | ↵ | | 16 | value,↵
|
20 | boolean isSelected, boolean hasFocus, int row, int column) {↵ | | 17 | boolean isSelected, boolean hasFocus, int row, int column) {↵
|
|
21 | if (table != null) {↵ | | 18 | if (table != null) {↵
|
22 | JTableHeader header = table.getTableHeader();↵ | | 19 | JTableHeader header = table.getTableHeader();↵
|
|
23 | if (header != null) {↵ | | 20 | if (header != null) {↵
|
24 | setForeground(header.getForeground());↵ | | 21 | setForeground(header.getForeground());↵
|
25 | setBackground(header.getBackground());↵ | | 22 | setBackground(header.getBackground());↵
|
26 | setFont(header.getFont());↵ | | 23 | setFont(header.getFont());↵
|
27 | }↵ | | |
|
28 | }↵ | | |
|
|
29 | if (sorter.getColumnName↵ | | 24 | }↵
|
| | | 25 | }↵
|
|
| | | 26 | setText((value == null) ? "" : value.toString());↵
|
| | | 27 | setBorder(UIManager.getBorder("TableHeader.cellBorder"));↵
|
|
30 | (sorter.getSelectedColumn()).equals(↵ | | 28 | if (sorter.getSortingColumn().equals(↵
|
31 | (String) str)) {↵ | | |
|
32 | ↵ | | 29 | name)) {↵
|
33 | if (sorter.isSortOrder()) {↵ | | 30 | if (sorter.getSortingOrder()) {↵
|
34 | setIcon(descending);↵ | | 31 | setIcon(descending);↵
|
35 | } else {↵ | | |
|
36 | setIcon(ascending);↵ | | |
|
37 | }↵ | | |
|
38 | } else {↵ | | |
|
39 | setIcon(null);↵ | | |
|
40 | }↵ | | |
|
|
41 | setText(this.name);↵ | | |
|
|
42 | ↵ | | 32 | } else {↵
|
| | | 33 | setIcon(ascending);↵
|
| | | 34 | }↵
|
| | | 35 | } else {↵
|
| | | 36 | setIcon(null);↵
|
| | | 37 | }↵
|
|
43 | return this;↵ | | 38 | return this;↵
|
44 | | | 39 |
|