Fenetre et listener

Résolu
aforpien Messages postés 118 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 12 mai 2010 - 24 janv. 2010 à 21:08
aforpien Messages postés 118 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 12 mai 2010 - 24 janv. 2010 à 22:06
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

aforpien Messages postés 118 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 12 mai 2010
24 janv. 2010 à 22:06
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
3
Rejoignez-nous