J'ai un JTable
. Une colonne contient un JPanel
qui contient quelques JLabels
avec des ImageIcons
. J'ai créé un rendu de cellule personnalisé et tout fonctionne bien sauf l'info-bulle sur le JLabel
. Lorsque je survole l'un de ces JLabels
, je dois afficher l'info-bulle de ce JLabel
particulier. Il ne montre pas l'info-bulle du JLabel
.
Voici le 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 iconList = (List) 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;
}
}