IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

[cellRenderer] problème de focus


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de grabriel
    Inscrit en
    Septembre 2006
    Messages
    946
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 946
    Par défaut [cellRenderer] problème de focus
    Salut,

    j'ai un petit souci, j'ai fait un cellRenderer qui ne fonctionne pas comme je le veux j'ai dû faire une erreur quelque part mais je ne vois pas où, du coup je suis allé voir des tutos et la javadoc mais j'ai pas trouvé de solution.
    Pourtant mon code est ultra simple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    public class Montant_CellRenderer  extends DefaultTableCellRenderer {
    	 public Component getTableCellRendererComponent(JTable table,
    	 Object value,
    	 boolean isSelected,
    	 boolean hasFocus,
    	 int row,
    	 int column){
     
    		 setHorizontalAlignment(SwingConstants.RIGHT);
     
    		 BigDecimal bdMtt = ActionUtils.parsetoBigDecimal(value);
     
    		 setText(value.toString());
     
    		 if (bdMtt.signum() < 0){
    			 setForeground(Color.red);
    		 }else{
    			 setForeground(Color.black);
    		 }
     
    	 return this;
    	 }
    }
    Ce qu'il fait : si le montant est négatif la couleur est rouge seulement quand on sélectionne la cellule.
    Du coup j'ai essayé avec les hasFocus et isSelected dans mon if mais au lieu de n'afficher la valeur en rouge quand il est selectionné il affiche tout le temps en noir.


  2. #2
    Membre éclairé Avatar de grabriel
    Inscrit en
    Septembre 2006
    Messages
    946
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 946
    Par défaut
    personne ne sait???


  3. #3
    Membre averti
    Profil pro
    Developpeur
    Inscrit en
    Novembre 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 12
    Par défaut
    Et si tu appelais la méthode super() ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    class Montant_CellRenderer extends DefaultTableCellRenderer {
    	public Component getTableCellRendererComponent(JTable table, Object value,
    			boolean isSelected, boolean hasFocus, int row, int column) {
    		super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
    		setHorizontalAlignment(SwingConstants.RIGHT);
    		BigDecimal bdMtt = ActionUtils.parsetoBigDecimal(value);
    		setText(value.toString());
    		if (bdMtt.signum() < 0) {
    			setForeground(Color.red);
    		} else {
    			setForeground(Color.black);
    		}
    		return this;
    	}
    }

  4. #4
    Membre éclairé Avatar de grabriel
    Inscrit en
    Septembre 2006
    Messages
    946
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 946
    Par défaut
    ca change rien... le contenu de la cellule est rouge seulement si la cellule est sélectionnée, comme avant.

    Merci pour cette réponse je commencais à désepérer.

  5. #5
    Membre Expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Par défaut
    Salut,

    Si j'ai bien compris ton problème, tu veux afficher la cellule en rouge si, quand elle est sélectionné, le montant est négatif.
    Petit exemple explicatif de ce que j'ai compris:
    Cell1 a un montant négatif
    Cell1 est en noir au début --> sélection de Cell1 --> Cell1 passe en rouge
    sélection de Cell2 --> Cell1 passe en noir

    C'est ça?

  6. #6
    Membre éclairé Avatar de grabriel
    Inscrit en
    Septembre 2006
    Messages
    946
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 946
    Par défaut
    Non je veux afficher la cellule en rouge si le montant est négatif, que la cellule soit sélectionnée ou pas. Bref tout le temps rouge si montant < 0.

    Mon problème c'est que ca affiche en rouge seulement quand je sélectionne.

    Si je reprends ton exemple.

    Ce que je veux :

    Cell1 est négatif --> cell 1 est en rouge.

    Ce que j'ai déjà et que je ne veux pas avoir :

    Cell1 a un montant négatif
    Cell1 est en noir au début --> sélection de Cell1 --> Cell1 passe en rouge
    sélection de Cell2 --> Cell1 passe en noir

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de focus avec une TTreeView
    Par Rustine dans le forum Composants VCL
    Réponses: 2
    Dernier message: 24/10/2005, 18h12
  2. Problème de Focus
    Par Charette dans le forum Composants VCL
    Réponses: 7
    Dernier message: 14/09/2005, 23h18
  3. problème de focus dans un CEdit
    Par Depteam1 dans le forum MFC
    Réponses: 11
    Dernier message: 08/09/2005, 15h05
  4. [JTextField] Problème de focus
    Par clairette dans le forum Composants
    Réponses: 29
    Dernier message: 22/07/2005, 16h52
  5. Problème de focus + touches de direction
    Par schnito dans le forum Agents de placement/Fenêtres
    Réponses: 9
    Dernier message: 11/01/2005, 20h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo