2009-03-23 6 views
0

J'essaie de mettre à jour le titre d'un composant JInternalFrame dans mon projet Java.Problème lors de la mise à jour du titre dans le composant JInternalFrame GUI

Le composant est une instance de ma classe ImageFrame qui étend JInternalFrame, et dans mon code j'appelle une méthode setter dans ma classe ImageFrame qui met à jour l'attribut title. J'ai effectué un test d'unité et je sais que l'attribut est correctement mis à jour, mais je n'arrive pas à comprendre comment actualiser le composant pour afficher le nouveau titre.

Des idées?

FYI: Je n'ai pas réussi à obtenir .repaint() pour faire l'affaire.

Voici le code:

File selectedFile = fileChooser.getSelectedFile();  // Gets File selected in JFileChooser 
try { 
    ImageReadWrite.write(img, selectedFile);    // Writes Image Data to a File 
    frame.setFilePath(selectedFile.getAbsolutePath()); // Changes File Location Attribute in Instance Of ImageFrame 
    frame.setFileName(selectedFile.getName());   // Changes Window Title Attribute 
    //frame.?? 
} 
catch (Exception event) { 
    event.printStackTrace(); 
} 

donc ce que je besoin ici est de savoir ce que je dois ajouter à faire la mise à jour des composants avec le nouveau titre

+0

Collez le code que vous utilisez pour mettre à jour le titre. Ident utilisant 4 espaces pour l'autoformat. – OscarRyz

Répondre

0

Vous pouvez essayer en remplaçant:

frame.setFileName(selectedFile.getName()); 

avec

frame.setTitle(selectedFile.getName()); 

Je ne connais pas votre code, mais setFileName ne fait pas partie de l'interface publique JInternalFrame. Probablement vous avez probablement ajouté cette méthode, probablement pas.

Essayez ma suggestion et voyez si cela aide.

+0

Oui, .setFileName() est une méthode setter que j'ai écrite dans ma classe ImageFrame, après avoir vérifié que je me suis rendu compte que j'avais le code pour changer l'attribut, je n'avais pas de code pour mettre à jour l'objet. alors j'ai essayé votre suggestion et j'ai obtenu ce que je voulais. Merci beaucoup! –

+0

Génial !, je suppose que quelque chose comme ça était arrivé. C'est pourquoi je vous demande de coller votre code pour le confirmer. Cela arrive de temps en temps – OscarRyz

+0

Éviter l'héritage est un bon moyen d'éviter ce genre de bugs (et a tendance à produire un bien meilleur code). –

Questions connexes