Bonjour,
Lorsque je demande à affcher une grille dans un JLabel alors qu une autre grille y était déjà affichée, elle s affiche quelques secondes puis disparait pour laisser la place à l ancienne grille. Je ne comprend pas ce qui se passe...
Merci
Version imprimable
Bonjour,
Lorsque je demande à affcher une grille dans un JLabel alors qu une autre grille y était déjà affichée, elle s affiche quelques secondes puis disparait pour laisser la place à l ancienne grille. Je ne comprend pas ce qui se passe...
Merci
Sans bout de code, ça va être difficile de t'aider... :mouarf:
En fait la deuxieme grille que je veux afficher se retrouve en dessous de l autre, voici un bout de code:
MerciCode:
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 public void init_main() { selected_fields = new ArrayList<String>(); selected_fields = choice.get_fields().get_selected_fields(); if (choice.get_menu().compareTo("orders")==0){ /* affichage de la grille des ordres */ grid = new ui_OrdersGrid(this); /* on grise le menu search des replies */ orders_search.setEnabled(true); replies_search.setEnabled(false); this.setVisible(true); } else if (choice.get_menu().compareTo("replies")== 0){ /* affichage de la grille des replies */ grid2 = new ui_RepliesGrid(this); /* on grise le menu search des orders */ replies_search.setEnabled(true); orders_search.setEnabled(false); this.setVisible(true); }
C'est pas non plus avec ça qu'on va pouvoir t'aider... :?
Montre-nous le code où tu dessines tes grilles et celui où tu décides laquelle doit être tracée.
Voici le code de mon constructeur OrdersGrid:
et voici comment je remplis ma grille: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 public ui_OrdersGrid(ui_Main main) { main_frame = main; progress_bar = new ui_ProgressBar(); bar= progress_bar.get_progressBar(); progress_val = 2; bar.setValue(progress_val); orders_matrix = new ArrayList<ArrayList<String>>(); // lancement du parsing des fichiers launch_parsing(); set_orders_title("ORDERS TABLE"); main_frame.getContentPane().add(title_panel, BorderLayout.NORTH); bar.setValue(95); main_panel = new JPanel(); names_panel = new JPanel(); // renseignement de la grille des ordres fill_grid_by_col(); //progress_val = 99; bar.setValue(99); // reglage des tailles des fenetres resize_frame(); scrollPane = new JScrollPane(); scrollPane.setViewportView(main_panel); scrollPane.setColumnHeaderView(names_panel); main_frame.getContentPane().add(scrollPane, BorderLayout.CENTER); //main_frame.getContentPane().add(names_panel, BorderLayout.SOUTH); progress_bar.dispose(); main_frame.setVisible(true); }
Mes deux grilles sont faites de la meme manière.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
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107 public void fill_grid_by_col() { String elmt = null; int length = orders_matrix.get(0).size(); labels_vector = new ArrayList<JLabel>(); // creation de la grille colonne par colonne for(int i=7; i<selected_fields.size(); i++) { // on va stocker la largeur de la colonne int w = 0 ; col_panel = new JPanel(); col_panel.setBackground(Color.white); col_panel.setLayout (new GridLayout(length, 1)); col_names_panel = new JPanel(); col_names_panel.setBackground(Color.white); col_names_panel.setLayout (new BorderLayout()); // recuperation des valeurs correspondant a ce champ ArrayList<String> col = orders_matrix.get(i); // initialisation du temp_label0 (pour le titre dans le main_panel) temp_label0 = new JLabel(); for(int j=0; j<length; j++) { // recuperation de l'element elmt = col.get(j); // creation d'un label avec cet element temp_label = new JLabel(elmt, JLabel.RIGHT); // je sauvegarde le label a afficher : sert pour gerer les evenements de clics de souris labels_vector.add(temp_label); if((j != 0) && !elmt.equals(" - ")){ this.add_listeners(temp_label); temp_label.setToolTipText(col.get(0)); } font = temp_label.getFont(); index_font = new Font("TimesRoman"/*font.getName()*/, Font.BOLD, font.getSize()+ 5); /* Pour afficher une ligne sur 2 d'une couleur differente*/ if(j%2 != 0) { temp_label.setForeground(Color.blue); } else { /* couleur = vert fonce */ temp_label.setForeground(new Color(0,153,0)); } // je mets la largeur à jour if (w < temp_label.getPreferredSize().width){ w = temp_label.getPreferredSize().width ; } /* je donne des proprietes differentes a la ligne des noms des champs pour la distinguer des autres */ if(j==0) { // creation d'un label name avec cet element temp_name_label = new JLabel(elmt); temp_label.setFont(index_font); temp_name_label.setFont(index_font); temp_label.setHorizontalAlignment(JLabel.CENTER); temp_name_label.setHorizontalAlignment(JLabel.CENTER); // je suis obligée de rentrer quand même cette ligne (nom de champ) dans ma colonne pour que la // largeur s'ajuste bien mais comme je l'ai déjà dans mon entête, je la mets invisible et à la fin temp_label.setVisible(false); temp_label0 = temp_label; } else { col_panel.add(temp_label); } // je rajoute la ligne de noms à la fin if (j==length-1){ col_panel.add(temp_label0); } } // je regle la taille de mes labels de titres et je construis mon panel colonne titres : // les noms des champs et les colonnes des champs doivent avoir la même largeur // la largeur du main_panel n'est pas toujours assez large => utilisation de w // (bizarre d'ailleurs vu qu'on inclut dans la colonne le nom du champs) Dimension dav; dav=temp_name_label.getPreferredSize(); if (w < dav.width) { w = dav.width; } temp_name_label.setMinimumSize(new Dimension(w, dav.height)); temp_name_label.setPreferredSize(new Dimension(w, dav.height)); col_names_panel.add(temp_name_label); // j'inclus mes panels colonnes dans mes panels de titres et de donnees main_panel.add(col_panel); names_panel.add(col_names_panel); } }
Je choisis la grille que je veux afficher en fonction du menu choisi( le bout de code que je vous ai envoyé au début)
J'espère que je vous ai éclairés
Merci