Bonjour,
J ' ai un petit probleme concernant la Jtable
voila , je remplis la mienne avec une liste de nom de fichier et j applique un renderer personnalise sur la 1 ere colonne de ma JTable qui contiendra une ImageIcon
Je desire faire en sorte que cette image s ' affiche lorsque je clique sur ladite ligne, donc j ' ai fais un truc comme ca
Code :
- if(isSelected)
- {
- this.setIcon(icon);
- //this.fi
- }
- else
- {
- this.setBackground(Color.BLACK);
- }
|
ca fonctionne plutot bien , si je selectionne les index des lignes les uns apres les autres(ex : index 0, index 1)
mais si je selectionne par exemple la ligne 1 , puis la ligne 7, toutes les lignes entre elles affichent aussi l ' image alors que je n ' ai pas cliqué dessus.
Comment resoudre ce probleme svp ?
Merci de votre aide
Mon renderer complet:
Code :
- package com.dev;
- import java.awt.Color;
- import java.awt.Component;
- import javax.swing.ImageIcon;
- import javax.swing.JTable;
- import javax.swing.table.DefaultTableCellRenderer;
- public class ComposantsTableau extends DefaultTableCellRenderer {
- private static final long serialVersionUID = 1L;
- String path="Lu.jpg";
- ImageIcon icon = new javax.swing.ImageIcon(getClass().getResource(path));
- public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
- boolean hasFocus, int row, int column) {
- // this.setText("case " + row + ", " + column);
- //this.setText((String) value);
- // this.setHorizontalAlignment(SwingConstants.LEFT);
- if(isSelected)
- {
- this.setIcon(icon);
- //this.fi
- }
- else
- {
- this.setBackground(Color.BLACK);
- }
-
- return this;
- }
- }
|