Bonjour � tous
une question concernant les JTable
Voil� ce que je veux faire : changer la couleur d'une cellule de ma table
quand je clicke dessus.
Mais je veux en fait attribuer une valeur � un attribut particuler de cette
cellule dans le AbstractTableModel en cliquant dessus et donc comme le
modele change, la table est redessin�e et hop!!
Mais voil� ca d�conne compl�tement et toutes mes cellules changent de
couleur. Un peu de code :
A ma JTable j'ajoute un MouseListener pour detecter le click et changer la
valeur dans le modele
_jTable.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 1) {
Point unPointOrigine = e.getPoint();
int uneLigne = _jTable.rowAtPoint(unPointOrigine);
int uneColonne = _jTable.columnAtPoint(unPointOrigine);
if (uneLigne == -1 || uneColonne == -1)
return;
else {
Object unObject = _jTable.getValueAt(uneLigne,uneColonne);
//Si la cellule est de Type T1 elle doit �tre bleue.
_JTableModel.modifierType(Type.T1,unObject);
}
}
}
});
Maintenant ma classe redefinissant DefaultTableCellRenderer prend en compte
le type de chaque cellule :
public Component getTableCellRendererComponent(JTable pJTable,Object
pValueObject,boolean pIsSelected,boolean pHasFocus,int pLigne,int pColonne)
{
JLabel unRequestedComponent;
SpeModel unJTableModel = null;
Type unType = null;
if (pValueObject==null || pValueObject.equals(null) ||
pValueObject.equals("")) {
unRequestedComponent = new JLabel();
unRequestedComponent.setEnabled(false);
}
else {
unJTableModel = (SpeModel) pJTable.getModel();
unType = unJTableModel.getType(pValueObject);
unRequestedComponent = (JLabel)
super.getTableCellRendererComponent(pJTable, pValueObject, pIsSelected,
pHasFocus, pLigne, pColonne);
unRequestedComponent.setHorizontalAlignment(JLabel.CENTER);
if (unType==Type.T1) {
unRequestedComponent.setBackground(Color.blue);
}
}
return unRequestedComponent;
}
voil� en gros (et �pur�e) les deux bouts de code principaux...
Donc vu que je ne suis pas un expert Swing, d'apr�s vous o� est l'erreur?
Merci de votre aide.
______________________________________________________________________________
ifrance.com, l'email gratuit le plus complet de l'Internet !
vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP...
http://www.ifrance.com/_reloc/email.emailif