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 :

[JTable] couleur de fond


Sujet :

Composants Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 12
    Points : 7
    Points
    7
    Par défaut [JTable] couleur de fond
    Bonjour,
    Voilà en fait je veux créer ma propre JTable, avec une couleur spécifique. Donc pour l'instant je suis arrivée à changer la couleur des entêtes. Mais le problème est que je n'arrive pas à changer la couleur du fond du tableau.
    C'est-à-dire que la partie vide de mon tableau reste grise et je voudrais changer cette couleur.
    J'ai essayé pas mal de truc autour des setbackground()... mais impossible
    Merci d'avance
    Terminagroo

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 314
    Points : 206
    Points
    206
    Par défaut
    pour changer le fond du tableau, tu utilises setBackground(Color.CYAN) pour avoir le fond du tableau en cyan;
    Nulla dies sin linea

  3. #3
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 63
    Points : 85
    Points
    85
    Par défaut
    si j'ai bien compris, tu veux changer la couleur de l'espace qui reste apres les cellules?

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Le setbackground me change la couleur du fond de mes cellules mais c'est effectivement la couleur de l'espace libre après les cellules que je veux changer.

  5. #5
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 63
    Points : 85
    Points
    85
    Par défaut
    n'oublies pas que le jtable est contenu ds le jscrollpane, donc il y a trois fonds à changer :

    -fond de l'esp derriere les cellules
    -fond de l'esp de JTable restant apres les cellules
    -fond du jscrollpane contenant le jtable

    pour le premier, c le traditionnel setBackground.
    pour le troisième c
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     scrollPane.getViewport().setBackground(Color.yellow);
    pour le deuxième je connais qu'une methode, surclasser la jtable. voila un ex. de code:

    //j'ai ajouté les méthodes get(/set)BackPaint pour changer la couleur de fond

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.Paint;
    import java.awt.Rectangle;
     
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.table.DefaultTableModel;
     
     
     
    public class TableAvecFondColorie extends JTable {
    	private Paint backPaint;
     
    	public TableAvecFondColorie(DefaultTableModel model) {
    		super(model);
    	}
     
    	public static void main(String[] args) {
    		JFrame fr = new JFrame();
    		fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		TableAvecFondColoried = new TableAvecFondColorie(new DefaultTableModel(3, 3));
    		d.setPreferredSize(new Dimension(400, 400));
    		d.setBackground(Color.yellow);
    		d.setBackPaint(Color.yellow);
    		JScrollPane js = new JScrollPane(d);
    		js.getViewport().setBackground(Color.yellow);
    		fr.getContentPane().add(js, BorderLayout.CENTER);
    		fr.pack();
    		fr.setVisible(true);
    	}
     
     
    	private int getTotalRowHeight() {
    		int h = 0;
    		for (int i = 0; i < getRowCount(); i++) {
    			h += getRowHeight(i);
    		}
    		return h;
    	}
     
    	protected void paintComponent(Graphics g) {
    		super.paintComponent(g);
    		if(backPaint != null) {
    			Rectangle r = getBounds();
    			int w = getWidth();
    			int y = getTotalRowHeight();
    			int h = getHeight();
    			int dh = ((h-y)<0)?0:(h-y);
    			Graphics2D g2d = (Graphics2D) g;
    			g2d.setPaint(backPaint);
    			g2d.fillRect(0, y, w, dh);
    		}
    	}
     
    	public Paint getBackPaint() {
    		return backPaint;
    	}
     
    	public void setBackPaint(Paint backPaint) {
    		this.backPaint = backPaint;
    	}
    }

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Oki merci beaucoup
    C'était effectivement le jScollPane.getViewport.setBackground qui me manquait.
    C'est cool

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

Discussions similaires

  1. JTable couleur de fond
    Par montassar dans le forum NetBeans
    Réponses: 0
    Dernier message: 28/04/2012, 10h51
  2. TDBGRID - Couleur de fond d'une seule cellule
    Par cgo dans le forum Bases de données
    Réponses: 5
    Dernier message: 11/09/2009, 10h16
  3. Changer la couleur de fond cellule JTable
    Par donnadieujulien dans le forum Composants
    Réponses: 13
    Dernier message: 22/09/2008, 18h38
  4. [JTable] Modifier la couleur de fond d'une ligne
    Par joes_bushi dans le forum Composants
    Réponses: 2
    Dernier message: 20/09/2005, 12h13
  5. [JTable] Problème avec la couleur de fond
    Par ellocin dans le forum Composants
    Réponses: 5
    Dernier message: 13/09/2005, 23h07

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