2009-03-23 7 views
0

Ich versuche, den Titel einer JInternalFrame-Komponente in meinem Java-Projekt zu aktualisieren.Problem beim Aktualisieren des Titels in der JInternalFrame-GUI-Komponente

Die Komponente ist eine Instanz meiner ImageFrame-Klasse, die JInternalFrame erweitert, und in meinem Code rufe ich eine Setter-Methode in meiner ImageFrame-Klasse auf, die das title-Attribut aktualisiert. Ich habe einen Komponententest ausgeführt und weiß, dass das Attribut korrekt aktualisiert wird, aber ich kann nicht herausfinden, wie ich die Komponente aktualisieren kann, um den neuen Titel anzuzeigen.

Irgendwelche Ideen?

FYI: Ich konnte nicht .repaint(), um den Trick zu tun.

Hier ist der 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(); 
} 

so, was ich hier brauchen, ist zu wissen, was ich sollte das Komponenten-Update mit dem neuen Titel

+0

Fügen Sie den Code ein, den Sie zum Aktualisieren des Titels verwenden. Ident mit 4 Leerzeichen für AutoFormat. – OscarRyz

Antwort

0

Sie könnten durch das Ersetzen versuchen machen in den:

frame.setFileName(selectedFile.getName()); 

mit

frame.setTitle(selectedFile.getName()); 

Ich kenne Ihren Code nicht, aber setFileName ist nicht Teil der öffentlichen JInternalFrame-Schnittstelle.

Wahrscheinlich haben Sie diese Methode wahrscheinlich nicht hinzugefügt. Versuchen Sie meinen Vorschlag und sehen Sie, ob das hilft.

+0

Ja, .setFileName() ist eine Setter-Methode, die ich in meiner ImageFrame-Klasse geschrieben habe. Nach der Überprüfung erkannte ich, dass ich zwar den Code zum Ändern des Attributs hatte, aber keinen Code zum Aktualisieren des Objekts. Also habe ich Ihren Vorschlag versucht und bekommen, was ich wollte. Vielen Dank! –

+0

Großartig! Ich nehme an, so etwas ist passiert. Deshalb bitte ich Sie, Ihren Code einzufügen, um es zu bestätigen. Es passiert von Zeit zu Zeit – OscarRyz

+0

Vermeidung von Vererbung ist eine gute Möglichkeit, diese Art von Fehlern zu vermeiden (und neigt dazu, sehr viel besseren Code zu produzieren). –