在JTable头部设置自定义渲染器时,我能够获得预期的视觉效果(边框、字体、对齐等),但是我无法获取通常在对行进行排序时出现的外观和感觉的LaF排序图标。
以下是设置自定义头部渲染器的代码:
这是自定义标题呈现器的摘录:
以下是设置自定义头部渲染器的代码:
Enumeration<TableColumn> columns = getColumnModel().getColumns();
while (columns.hasMoreElements())
columns.nextElement().setHeaderRenderer(new XDeliveryTableHeaderRenderer());
这是自定义标题呈现器的摘录:
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;
}
}
有什么提示吗?
if (label.getIcon() == null) label.setIcon(MY_STOCK_ICONS[columnIndex]);
。我想象中,同时拥有自定义标题图标和LAF排序图标需要手动合并两个资源,但这(目前)超出了我的应用程序范围。谢谢kleo。 - S3lvatico