Der Wert ist nicht unbedingt Null (ich denke?), Denn es ist immer noch eine gültige Referenz.Welchen Wert hat ein JFrame, nachdem er entsorgt wurde?
Antwort
Ein JFrame ist ein Objekt und kann daher niemals null sein, während eine JFrame-Variable entweder auf ein gültiges JFrame-Objekt verweisen kann oder keine Referenz hat und daher "be null" ist. Wenn Sie dispose()
für das JFrame-Objekt aufrufen, ist das Objekt weiterhin vorhanden und die Variable ist daher nicht null. Der JFrame hat jedoch einige Systemressourcen freigegeben. Diese Ressourcen werden wieder gewonnen, wenn das JFrame-Objekt erneut gerendert wird.
Wie oft der Fall ist, ist der beste Test für eine Frage wie diese zu 1) Erstellen und Testen von Code ausführen und 2) überprüfen Sie die API
zB
JFrame frame = new JFrame("Foo");
frame.pack();
frame.setVisible(true);
// in some listener
frame.dispose(); // it's no longer visible
System.out.println("is frame null? " + (frame == null));
Per Fenster API , von der die dispose-Methode geerbt wird:
Gibt alle nativen Bildschirmressourcen frei, die von diesem Fenster, seinen Unterkomponenten und allen zugehörigen untergeordneten Elementen verwendet werden. Das bedeutet, dass die Ressourcen für diese Komponenten zerstört werden. Der von ihnen verbrauchte Speicher wird an das Betriebssystem zurückgegeben und als nicht wiedergabebereit markiert. Das Fenster und seine Unterkomponenten können erneut angezeigt werden, indem die systemeigenen Ressourcen mit einem nachfolgenden Aufruf zum Packen oder Anzeigen neu erstellt werden. Die Zustände des neu erstellten Fensters und seiner Unterkomponenten sind mit den Zuständen dieser Objekte an dem Punkt identisch, an dem das Fenster angeordnet wurde (ohne zusätzliche Änderungen zwischen diesen Aktionen zu berücksichtigen).
- 1. Wie kann JPanel entsorgt werden, nachdem das Panel aus dem JFrame entfernt wurde
- 2. String wurde leer nachdem er gefüllt wurde
- 3. Welchen Wert hat LVM_SCROLL?
- 4. Kann ein side_effect-Iterator simuliert werden, nachdem er erschöpft wurde?
- 5. Java-Scanner akzeptiert keine Zeichenkette, nachdem er eingegeben wurde
- 6. Warum reagiert dieser JButton nicht, nachdem er gedrückt wurde?
- 7. Welchen Schaden hat ein StackOverflowError?
- 8. Ändern eines Typs, nachdem er mit TypeBuilder.CreateType erstellt wurde
- 9. Welchen Wert hat diese DEFINEd-Konstante?
- 10. Muss ich einen Oscillator AudioNode trennen, nachdem er gestoppt wurde?
- 11. Wie man meinen Eulenschieber "repariert", nachdem er ihn zerstört hat
- 12. Python: liest Datei kontinuierlich, auch nachdem er logrotated wurde
- 13. Prozess kann nicht fortgesetzt werden, nachdem er ausgesetzt wurde
- 14. Warum entsorgt ein Stream, wenn sein Brenner entsorgt wird?
- 15. Wie wird UIAlertView aufgerufen, nachdem er Änderungen vorgenommen hat? `AlertViewShouldEnableFirstOtherButton:`?
- 16. Erkennen, ob die Kontrolle entsorgt wurde
- 17. BrokeredMessage entsorgt
- 18. ActionFilterAttribute ninject injection - DbContext wurde entsorgt
- 19. Kann ein verzögerter Job debuggt werden, nachdem er in die Warteschlange gestellt wurde?
- 20. Welchen Nutzen hat ein ORM für Datenbankmetadaten?
- 21. Welchen Zweck hat ein Artefakt-Repository?
- 22. Welchen Speicherbedarf hat ein methodenintensives Java-Objekt?
- 23. Update-Seite, nachdem der Bean-Wert sich geändert hat
- 24. WinForm entsorgt ein Unterformular, wenn das Formular entsorgt wird
- 25. Woher weiß ich in Akka, wann ein Schauspieler bereit ist, nachdem er bei actorOf() registriert wurde?
- 26. Nachdem ein Stream an CommandGet übergeben wurde, wann kann er freigegeben werden?
- 27. Sollte ein UdpClient entsorgt werden?
- 28. Welchen Shell Rubin benutzt er als Subshell?
- 29. Was passiert, nachdem ein Paket erfasst wurde?
- 30. Welchen Vorteil hat ein Key-Value Store gegenüber Bigtable?
Was meinst du mit entsorgt? – Javant