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 ajouter des couleurs


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    automaticien
    Inscrit en
    Novembre 2016
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : automaticien

    Informations forums :
    Inscription : Novembre 2016
    Messages : 68
    Par défaut JTable ajouter des couleurs
    Bonjour,

    J'ai un JTable sur netbeans avec 6 colonnes, j'aimerai mettre les 3 premières colonnes d'une couleurs et les 3 dernières d'une autres couleurs.
    J'aimerai savoir qu'elle commande je peu utiliser pour faire cela

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Utilisez un CellRenderer
    Code java : 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
     
    public class YellowCellRenderer extends DefaultTableCellRenderer { 
        public Component getTableCellRendererComponent(JTable table, Object value, boolean   isSelected, boolean hasFocus, int row, int column) { 
    		Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); 
    		c.setBackground(Color.YELLOW); 
    		return c; 
    	} 
    } 
     
    public class RedCellRenderer extends DefaultTableCellRenderer { 
        public Component getTableCellRendererComponent(JTable table, Object value, boolean   isSelected, boolean hasFocus, int row, int column) { 
    		Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); 
    		c.setBackground(Color.RED); 
    		return c; 
    	} 
    } 
     
     
    table.getColumnModel().getColumn(0).setCellRenderer(new YellowCellRenderer());
    table.getColumnModel().getColumn(1).setCellRenderer(new YellowCellRenderer());
    table.getColumnModel().getColumn(2).setCellRenderer(new YellowCellRenderer());
    table.getColumnModel().getColumn(3).setCellRenderer(new RedCellRenderer());
    table.getColumnModel().getColumn(4).setCellRenderer(new RedCellRenderer());
    table.getColumnModel().getColumn(5).setCellRenderer(new RedCellRenderer());

  3. #3
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Même pas besoin de surcharger la classe DefaultTableCellRenderer. Et attention à la gestion de la couleur en fonction de la sélection (avec l'implémentation proposée par GlobuleVert, on n'a plus d'affichage de sélection) !

    On peut faire tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DefaultTableCellRenderer rendererColumn2 = new DefaultTableCellRenderer();
    rendererColumn2.setBackground(Color.CYAN);
     
    table.getColumnModel().getColumn(2).setCellRenderer(rendererColumn2); // affecte le renderer à une colonne en particulier
    C'est utile en revanche si la couleur doit changer en fonction du contenu de la cellule, comme dans cet 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
    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
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    public class JTableRendererDemo {
     
    	public static void main(String[] args) {
     
     
    		JFrame frame = new JFrame("Démo");
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    		JTable table = createTable(); 
     
     
    		frame.add(new JScrollPane(table));
     
     
    		frame.setSize(600, 400);
    		frame.setLocationRelativeTo(null);
    		frame.setVisible(true);
    	}
     
    	private static JTable createTable() {
     
     
    		TableModel model = new AbstractTableModel() {
     
    			Object[][] data = { 
    						            { 1, "abc", "def", "ghi" },
    						            { 2, "jkl", "mno", "pqr" },
    						            { 3, "stu", "vwx", "yz" }
    							  };
    			String[] columns = { "id", "A", "B", "C" };
     
     
    			@Override
    			public String getColumnName(int col) {
    				return columns[col];
    			}
     
    			@Override
    			public boolean isCellEditable(int row, int col) {
    				return col>0;
    			}
     
    			@Override
    			public Class<?> getColumnClass(int col) { 
    				switch(col) {
    				case 0:
    					return Integer.class;
    				default:
    					return String.class;
    				}
    			}
     
    			@Override
    			public int getColumnCount() {
    				return columns.length;
    			}
     
    			@Override
    			public int getRowCount() {
    				return data.length;
    			}
     
    			@Override
    			public Object getValueAt(int row, int col) {
    				return data[row][col];
    			} 
     
    			@Override
    			public void setValueAt(Object value, int row, int col) {
    				data[row][col]=value; 
    			}
     
     
    		};
     
    		JTable table = new JTable(model);
     
    		DefaultTableCellRenderer rendererColumn2 = new DefaultTableCellRenderer();
    		rendererColumn2.setBackground(Color.CYAN);
     
    		table.getColumnModel().getColumn(2).setCellRenderer(rendererColumn2); // affecte le renderer à une colonne en particulier
     
    		DefaultTableCellRenderer rendererInteger = new DefaultTableCellRenderer();
    		rendererInteger.setBackground(Color.GREEN);
     
    		table.setDefaultRenderer(Integer.class, rendererInteger); // affecte le renderer pour un type
     
    		return table;
     
    	}
     
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  4. #4
    Membre confirmé
    Homme Profil pro
    automaticien
    Inscrit en
    Novembre 2016
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : automaticien

    Informations forums :
    Inscription : Novembre 2016
    Messages : 68
    Par défaut
    Nickel merci pour votre aide
    ça à fonctionné

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

Discussions similaires

  1. Ajouter des couleurs dans le code visual studio ?
    Par barbuslex dans le forum Visual Studio
    Réponses: 2
    Dernier message: 31/10/2009, 14h24
  2. Ajouter des couleurs au Shell?
    Par Flackou dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 09/09/2009, 13h39
  3. Réponses: 1
    Dernier message: 22/10/2008, 18h08
  4. Jtable ajouter des colonne
    Par toure32 dans le forum Composants
    Réponses: 6
    Dernier message: 21/06/2006, 09h15
  5. Réponses: 6
    Dernier message: 06/12/2005, 15h52

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