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

Composants Java Discussion :

Formater l'affichage d'une cellule


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Par défaut Formater l'affichage d'une cellule
    Bonjour,

    J'ai quelques soucis à formater correctement l'affichage de certaines cellules de ma JTable.
    J'affiche des floats, mais par défaut il n'affiche que trois chiffres après la virgule. Au delà de cela, il arrondit à la valeur supérieure.
    J'aimerais afficher x chiffres après la virgule...
    J'ai bien vu qu'il fallait modifier le renderer de la colonne, mais je ne vois pas comment faire.

    Aussi, j'ai une colonne qui affiche des prix, est-ce possible d'afficher par défaut le symbole €?

    Merci d'avance pour votre aide.

    BS_C3

  2. #2
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    Salut,
    voilà un petit exemple.
    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
    24
    25
    26
    27
    28
    29
    30
    31
    import javax.swing.*;
    import java.text.*;
    import javax.swing.table.*;
    import java.util.*;
     
    public class TestTable
    {
    	public static void main(String args[])
    	{
    		Object rows[][] = {{"Ligne1", 1.203504},{"Ligne2", 2.203504},{"Ligne3", 3.203504}};
    		String cols[] = {"Column1", "Column2"};
    		DefaultTableCellRenderer renderer = new DefaultTableCellRenderer()
    		{
    			protected void setValue(Object value)
    			{
    				NumberFormat formatter = NumberFormat.getInstance();
    				formatter.setMaximumFractionDigits(7);
    				String res = formatter.format(value);
    				res += "$";
    				setText(res);
    			}
    		};
    		JTable t = new JTable(rows, cols);
    		t.getColumn("Column2").setCellRenderer(renderer);
    		JFrame frm = new JFrame();		
    		frm.add(t);	
    		frm.setSize(200, 200);
    		frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		frm.setVisible(true);
    	}
    }
    remarque que j'ai mis 7 pour le nombre de digits après la virgule, et j'ai mis $ à la place de euro parceque je ne sais pas comment vous l'écrivez.
    si tu comprends pas quelque chose, demande

  3. #3
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Pour la partie € il te suffit d'utiliser la méthode getCurrencyInstance au lieu de la méthode getInstance pour récupérer ton NumberFormat

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Par défaut
    Citation Envoyé par herch Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    		DefaultTableCellRenderer renderer = new DefaultTableCellRenderer()
    		{
    			protected void setValue(Object value)
    			{
    				NumberFormat formatter = NumberFormat.getInstance();
    				formatter.setMaximumFractionDigits(7);
    				String res = formatter.format(value);
    				res += "$";
    				setText(res);
    			}
    		}
    Merci pour vos réponses... cependant, j'ai un petit souci avec le setText. Est-ce une méthode par défaut? Est-ce une méthode personnelle? C'est le setValue de la cellule?
    Merci d'avance

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Par défaut
    En fait c'est bon... =) MERCI!

  6. #6
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    setText est une méthode de DefaultTableCellRenderer, ou plutôt de JLabel ( DefaultTableCellRenderer hérite de JLabel ). Elle précise le texte de la cellule.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Par défaut
    Citation Envoyé par herch Voir le message
    setText est une méthode de DefaultCellRenderer. Elle précise le texte de la cellule.
    au fait, DefaultCellRenderer hérite de JLabel.
    J'ai remarqué cela =) En fait j'avais oublié de hériter de la classe DefaultTableCellRenderer... c'est pour ça =)
    Par contre à l'exécution, voici l'erreur que j'ai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.IllegalArgumentException: Cannot format given Object as a Number
    Précision: l'affichage est bon, mais l'erreur est bloquante...

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

Discussions similaires

  1. Pb d'affichage d'une cellule
    Par fmris dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/09/2008, 09h44
  2. [D6][TValueListEditor] Modifier l'affichage d'une cellule
    Par Lung dans le forum Composants VCL
    Réponses: 5
    Dernier message: 21/02/2007, 09h26
  3. affichage d'une cellule dans un text box
    Par magictom42 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/11/2006, 11h10
  4. [Excel] Affichage d'une cellule ayant pour valeur 0
    Par repié dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/02/2006, 10h38
  5. Affichage d'une cellule excel
    Par cciocc dans le forum ASP
    Réponses: 2
    Dernier message: 17/05/2005, 10h17

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