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

AWT/Swing Java Discussion :

Problème d 'affichage d une grile dans un JLabel


Sujet :

AWT/Swing Java

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 11
    Points : 8
    Points
    8
    Par défaut Problème d 'affichage d une grile dans un JLabel
    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

  2. #2
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    Sans bout de code, ça va être difficile de t'aider...

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    En fait la deuxieme grille que je veux afficher se retrouve en dessous de l autre, voici un bout de code:
    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
     
    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);
    	  		}
    Merci

  4. #4
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    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.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Voici le code de mon constructeur OrdersGrid:
    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
     
    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);
    	}
    et voici comment je remplis ma grille:

    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
    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);
    		}
    	}
    Mes deux grilles sont faites de la meme manière.
    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

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

Discussions similaires

  1. Problème d'affichage d'une image dans QLabel
    Par H0rnet dans le forum Qt
    Réponses: 4
    Dernier message: 28/02/2009, 00h18
  2. problème d'affichage d'une image dans un TextBuffer
    Par manzanita13 dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 02/02/2009, 16h32
  3. problème d'affichage d'une feuille dans un classeur
    Par izarra2408 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 30/06/2008, 16h31
  4. Problème d'affichage d'une formule dans une cellule excel
    Par casho dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 30/07/2007, 17h58
  5. Problème d'affichage d'une image dans une fenetre
    Par taouja dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 30/04/2007, 16h00

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