salut a tous,
alors mon probleme est simple j'aimerais pouvoir colorier une ligne de mon jtable lorsque je clique sut un elt de mon jtree (chaque elt de mon jtree correspend a un elt de mon jtable donc je veut faire la relation entre ces deux derniers) j'ai une methode qui met a jour mon jtable et qui crée a chaque fois un nouveau tableau avc un model qui change selon l'index de la ligne a colorier; donc j essayé de l'appeler a l'interrieur de l'actionlistner de mon jtree mais ça ne regle pas le probleme :cry: aidez moi svp pske je galaire depuis 3jours pour trouver la solution
donc voila l'actionlistner de mon jtree
et voila la methode qui met a jour le jtableCode:
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 public void valueChanged(TreeSelectionEvent event) { if(arbre.getLastSelectedPathComponent() != null){ //La méthode getPath retourne un objet TreePath emplacement_fichier = getAbsolutePath(event.getPath()); boolean trouve =false; for(int k=0; k<tabf.size() && !trouve;k++){ if ((arbre.getLastSelectedPathComponent().toString()).equals(tabf.get(k).toString())){ trouve=true; System.out.println("trouve!!!!!!!!!!!!!!!!!!!!!!!!!!aaaa"+tabf.get(k).toString()); } } System.out.println(arbre.getLastSelectedPathComponent().toString()); if (!trouve){ System.out.println("rentre"); R_racine.get_attributs(emplacement_fichier); //fichier selectionné boolean trouv = false; String[] tableau=new String[13]; int i; for (i=0; (i<R_racine.tab2.size()) && (!trouv); i++){ tableau = R_racine.tab2.get(i); if (tableau[13].equals(emplacement_fichier)){ trouv = true; } }b=i;chargement_tableau1(); }
Code:
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 public void chargement_tableau1(){ Object[][] data1 = new Object[512][13] ; Object [] title1 ={"Nom de fichier","Extension","Attributs du fichier","Réservé,","Heure de création : par unité de 10 ms ","Heure de création","Date de création","Date du dernier accès ","Index EA","Heure de dernière modification","Date de dernière modification","Numéro du premier cluster ","Taille du fichier"}; R_racine.lire_repertoire_racine(chemin+"\\"+nom_partition+"_repertoire_racine_file.ser"); String[] tab1 = new String[14]; for(int g = 0 ; g < R_racine.tab2.size() ; g++) { tab1 = R_racine.tab2.get(g) ; data1[g][0] = tab1[0] ; data1[g][1] = tab1[1] ; data1[g][2] = tab1[2] ; data1[g][3] = tab1[3] ; data1[g][4] = tab1[4] ; data1[g][5] = tab1[5] ; data1[g][6] = tab1[6] ; data1[g][7] = tab1[7] ; data1[g][8] = tab1[8] ; data1[g][9] = tab1[9] ; data1[g][10] = tab1[10] ; data1[g][11] = tab1[11] ; data1[g][12] = tab1[12] ; } JTable tableau1 = new JTable(data1,title1){ public Component prepareRenderer(TableCellRenderer renderer, int row, int col) { Color[] colors = {Color.LIGHT_GRAY, new Color(240,240,240), new Color(220,220,120)}; Component c = super.prepareRenderer(renderer, row, col); Color color = getBackground(); int i; System.out.println("000000000000000000000000.0.0.0.0.0.0.-----+"+b+"/"+row); if ( row==b) { c.setBackground(color.red); } c.setBackground(color.LIGHT_GRAY); return c; } }; tableau1.setFont(new Font("Calibri", Font.PLAIN, 13)); tableau1.setBackground(myBrightColor); //tableau1.setDefaultRenderer(Object.class, new MonCellRenderer1()); tableau1.setBorder(BorderFactory.createLineBorder(myBrightColor)); tableau1.getTableHeader().setReorderingAllowed(false); tableau1.getTableHeader().setResizingAllowed(false); tableau1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); modifier(0,200 ,tableau1 );modifier(1,200 ,tableau1 );modifier(2,200 ,tableau1);modifier(3,200 , tableau1); modifier(4,200, tableau1);modifier(5,200 , tableau1);modifier(6,200 , tableau1);modifier(7,200 , tableau1);modifier(8,200 , tableau1);modifier(9,200 , tableau1);modifier(10,200 , tableau1); modifier(11,200 , tableau1);modifier(12,200 , tableau1); infoos.setBackground(myBrightColor); infoos.setBorder(BorderFactory.createTitledBorder("Réportoire racine")); infoos.setViewportView(tableau1);}
etvoila le model de mon jtable
Code:
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 import java.awt.Color; import java.awt.Component; import javax.swing.JTable; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.table.DefaultTableCellRenderer; public class MonwCellRenderer1 extends DefaultTableCellRenderer { Partition_FAT16 p = new Partition_FAT16(); public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { Component cell = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); if (row==p.b){ cell.setBackground(Color.RED); }else cell.setBackground(Color.blue);System.out.println("bleu"); return cell; } }
et merci d'avance pour vos interventions
