[RESOLU] Rafraichissement d'une barre d'état

Rafraichissement d'une barre d'état [RESOLU] - Java - Programmation

Marsh Posté le 28-09-2009 à 07:49:50    

Bonjour,
 
Voila j'ai une barre d'état que je peux dans un menu par le biais d'une checkbox enlever ou ajouter (comme dans Firefox).
Hélas, le rafraichissement ne marche pas. Quand je clic sur enlever la barre d'état, cela ne fait rien, sauf si je change d'onglet ou je vois bien que la barre d'état n'est plus la. Idem pour la rajouter.
 
http://photoyop.free.fr/a/g.png
 

Code :
  1. private void initJLabel(String txt){
  2.         this.jl = new JLabel();
  3.         this.jl.setPreferredSize(new Dimension(100, 16));
  4.         this.jl.setText(txt);
  5.         getContentPane().add(this.jl, BorderLayout.SOUTH);
  6.     }
  7.     
  8.     private void setStatusBar(){
  9.         if( this.bareta.getState() == true ){
  10.             initJLabel(" En cours" );
  11.         } else {
  12.             this.remove(this.jl);
  13.         }
  14.     }


 
setStatusBar est appelé dans le Listener de la checkbox.
 
Avez vous une idée ?  :sweat:


Message édité par Yop69 le 28-09-2009 à 11:10:12
Reply

Marsh Posté le 28-09-2009 à 07:49:50   

Reply

Marsh Posté le 28-09-2009 à 10:56:05    

au passage,

Code :
  1. if( this.bareta.getState() == true ){


 [:bakk11]  
 
et sinon, pourquoi tu recrées un JLabel a chaque fois plutot que de juste modifier son texte?

Reply

Marsh Posté le 28-09-2009 à 11:00:07    

Pour la première remarque c'est que je compare à true ? c'est ca ? alors que c'est inutile c'est vrai  [:cerveau du chaos]  
 
Bah parce que quand j'enlève la StatusBar, je fais un remove du composant. Donc je dois la réinitialiser... enfin c'est ce que je pense hein  :D

Reply

Marsh Posté le 28-09-2009 à 11:02:46    

Yop69 a écrit :

Pour la première remarque c'est que je compare à true ? c'est ca ? alors que c'est inutile c'est vrai  [:cerveau du chaos]

ben ouais.
 
 

Yop69 a écrit :

Bah parce que quand j'enlève la StatusBar, je fais un remove du composant. Donc je dois la réinitialiser... enfin c'est ce que je pense hein  :D


 
tu peux pas plutot la mettre à visible false?
 
je pense qu'il doit falloir refaire un validate() de la form ou un truc du genre pour que ca soit pris direct... (cf réponse de cbeyls ici: http://forum.hardware.fr/hfr/Progr [...] 473_1.htm)


Message édité par pataluc le 28-09-2009 à 11:03:26
Reply

Marsh Posté le 28-09-2009 à 11:07:44    

Code :
  1. private void setStatusBar(){
  2.         if( this.bareta.getState() ){
  3.             initJLabel(" En cours" );
  4.         } else {
  5.             this.remove(this.jl);
  6.         }
  7.         getContentPane().validate();
  8.     }


 
Et ça roulez !!  [:yaisse2] Merci !! je ne connaissais pas ce validate !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed