我有一个JTable
。 一列拥有JPanel
其中包含一些JLabels
与ImageIcons
。 我创建了一个自定义单元格渲染和一切工作正常除在刀尖JLabel
。 当我鼠标移到这些中JLabels
我需要显示Tooltip
特定的JLabel
。 它没有显示的tootlip JLabel
。
这里是CustomRenderer
。
private class CustomRenderer extends
DefaultTableCellRenderer implements TableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row,
int column) {
if (value != null && value instanceof List) {
JPanel iconsPanel = new JPanel(new GridBagLayout());
List<ImageIcon> iconList = (List<ImageIcon>) value;
int xPos = 0;
for (ImageIcon icon : iconList) {
JLabel iconLabel = new JLabel(icon);
iconLabel.setToolTipText(icon.getDescription());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridy = 1;
gbc.gridx = xPos++;
iconsPanel.add(iconLabel, gbc);
}
iconsPanel.setBackground(isSelected ? table
.getSelectionBackground() : table.getBackground());
this.setVerticalAlignment(CENTER);
return iconsPanel;
}
return this;
}
}