Fenetre et listener

Résolu
Signaler
Messages postés
118
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
12 mai 2010
-
Messages postés
118
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
12 mai 2010
-
Bonsoir à tous,

J'essai de rafraichir des informations sur un jlabel présent dans une fenetre java de mon application, lorsque la fenetre est affichée / ou
cachée de l'écran. J'ai donc mis en place un windowStateListener, et j'arrive bien à récupérer le statut de ma fenetre, à savoir si
elle est visible ou non.
Cependant je n'arrive pas à modifier le texte de mon jlabel. Je travail sous netbeans, donc mon interface est générée automatiquement. J'ai un fichier .class qui lance l'application, et toute l'interface dans un autre fichier .class.
J'ai ajouté dans le .class principal de mon projet(celui qui lance l'interface graphique), les lignes suivantes :

@Override protected void startup() {
DesktopApplication1View objet = new DesktopApplication1View(this);
show(objet);
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
JFrame mainFrame = DesktopApplication1.getApplication().getMainFrame();
mainFrame.setLocation(
(screenSize.width-mainFrame.getWidth())/4,
(screenSize.height-mainFrame.getHeight())/4
);
mainFrame.setSize(605, 424);


WindowAdapter windowListener = new WindowAdapter(){

public void windowClosing(WindowEvent e){
System.exit(0);
}
public void windowStateChanged(WindowEvent e){
System.out.println("windowStateChanged(): " + e.toString());
String b="newState=0";
if (e.toString().contains(b)){
System.out.println("visible");
objet.jLabel5.setText("test");
}
String c="newState=1";
if (e.toString().contains(c)){
System.out.println("caché");
}

}
};
mainFrame.addWindowStateListener(windowListener);

}

J'obtiens un message d'erreur sur la ligne "objet.jLabel5.setText("test");", le message est "local variable is accessed from within inner class; needs to declare finale". Je n'arrive pas à acceder à mon jlabel depuis ces fonctions du listener de ma fenetre.
Faut-il s'y prendre autrement ?
Merci par avance de vos réponses

1 réponse

Messages postés
118
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
12 mai 2010

J'ai trouvé, il fallai modifier la ligne :
final DesktopApplication1View objet = new DesktopApplication1View(this);
Déclaration de la variable en "final".
Merci, bonne soirée à tous