在JTable标头上设置自定义渲染器时,我得到了预期的可视行为(边框,字体,对齐方式......)但我无法获得通常在排序行时出现的LaF排序图标.
这是用于设置自定义标题渲染器的代码:
Enumeration<TableColumn> columns = getColumnModel().getColumns();
while (columns.hasMoreElements())
columns.nextElement().setHeaderRenderer(new XDeliveryTableHeaderRenderer());
Run Code Online (Sandbox Code Playgroud)
这是自定义标题渲染器的摘录:
public class MyTableHeaderRenderer extends JLabel implements TableCellRenderer {
private static final Font labelFont = new Font("Arial", Font.BOLD, 11);
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
setFont(labelFont);
setHorizontalAlignment(SwingConstants.CENTER);
setText(value.toString());
setBorder(BorderFactory.createEtchedBorder());
return this;
}
}
Run Code Online (Sandbox Code Playgroud)
任何提示?