JTable , probleme affichage

JTable , probleme affichage - Java - Programmation

Marsh Posté le 29-06-2010 à 17:54:33    

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 :
  1. if(isSelected)
  2. {
  3. this.setIcon(icon);
  4. //this.fi
  5. }
  6. else
  7. {
  8. this.setBackground(Color.BLACK);
  9. }


 
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 :
  1. package com.dev;
  2. import java.awt.Color;
  3. import java.awt.Component;
  4. import javax.swing.ImageIcon;
  5. import javax.swing.JTable;
  6. import javax.swing.table.DefaultTableCellRenderer;
  7. public class ComposantsTableau extends DefaultTableCellRenderer {
  8.  private static final long serialVersionUID = 1L;
  9.  String path="Lu.jpg";
  10.    ImageIcon icon = new javax.swing.ImageIcon(getClass().getResource(path));
  11.    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
  12.        boolean hasFocus, int row, int column) {
  13.    // this.setText("case " + row + ", " + column);
  14.      //this.setText((String) value);
  15.    // this.setHorizontalAlignment(SwingConstants.LEFT);
  16.   if(isSelected)
  17.   {
  18.      this.setIcon(icon);
  19.      //this.fi
  20.   }
  21.   else
  22.   {
  23.    this.setBackground(Color.BLACK);
  24.   }
  25.     
  26.      return this;
  27.    }
  28.  }


Reply

Marsh Posté le 29-06-2010 à 17:54:33   

Reply

Marsh Posté le 01-07-2010 à 10:17:38    

up svp ^^

Reply

Marsh Posté le 02-07-2010 à 13:20:51    

Et ton renderer il est lié et appelé comment depuis ta Jtable ?

Reply

Marsh Posté le 02-07-2010 à 13:41:08    

comme ceci tout simplement
 

Code :
  1. listeMessage.getColumnModel().getColumn(0).setCellRenderer(new ComposantsTableauPanelAppel());


 
merci de ta reponse , car je seche depuis 2j dessus uhuh


Message édité par ulquiorra5 le 02-07-2010 à 13:41:24
Reply

Marsh Posté le 02-07-2010 à 13:53:13    

Je connais pas trop les Renderer donc je sais pas si je vais pouvoir t'aider mais si tu fais un test sur isSelected && hasFocus ça marche pas mieux ?

Reply

Marsh Posté le 02-07-2010 à 14:42:50    

nop car hasFocus signifie que je dois cliquer sur la cellule même et pas toute la ligne.
 
C' est bizarre ce problème d ' index car ca le fait pas sur une JList.
Je pense que c du cote du renderer qu il faut configurer quelque chose
 
Merci de ton aide

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed