Wenn Swing vollständig in Java geschrieben ist und das Fenster des Heavyweight (HW) -Vorgängers wiederverwendet, was ist die Logik dahinter? Ich meine, wenn Swing HW-Komponente Klasse erweitert, dann würde wieder HW-Komponenten native Anrufe aufrufen, so dass irgendwie native Anrufe aufgerufen wird. Aber Swing ist geringes Gewicht, also wo mein Verständnis ist fehlgeschlagen?Wie Swing tatsächlich natives Fenster von HeavyWeight Ancestor in Codestufe
0
wieder verwendet
A
Antwort
0
Die nativen Komponenten, in die Swing-Grafiken gezeichnet werden, sind nicht Teil der Java-Klassenhierarchie. Dort sind bestimmte Komponenten, die als Schwergewicht bezeichnet werden, aber nur weil ihre Grafikunterstützung mehr oder weniger direkt einer nativen Komponente entspricht.
Die meisten Swing-Komponenten malen in einen Puffer, der von einem schwergewichtigen Vorfahren in der visuellen Hierarchie bereitgestellt wird. Dieser schwergewichtige Vorgänger ist dafür verantwortlich, die Java-gezeichneten Grafiken zur Anzeige in die native Komponente zu verschieben.
Verwandte Themen
- 1. Anzeige swf in ein natives Fenster
- 2. Kachelartige Fenster auf Swing
- 3. Popup-Fenster in Java Swing
- 4. Get DataContext von ListView Ancestor
- 5. Natives Fenster: Freigabe-Handle beim Schließen
- 6. Beschädigtes Java-Swing-Fenster
- 7. Ancestor zu allen erreichbaren Knoten
- 8. Java Swing-Anwendung unter Gnome - Adwaita (dunkle Haut) Fenster Titelleiste
- 9. Drucken Fehlermeldung im selben Fenster mit Swing
- 10. Java (Swing) - Ziehen Sie zwei Fenster gleichzeitig
- 11. Natives Menü in C#
- 12. Java Swing: Positionierungsdialog über vorhandenem Fenster
- 13. Swing: Wie man nicht-rechteckige Fenster mit weichen Grenzen macht?
- 14. Swing von Swing-API Authorization
- 15. Java: Wie ziehe ich eine Datei von einer JTable in ein natives Dateisystem?
- 16. Wie Swing Jframe in Desktop-Bildschirm einschränken?
- 17. Entsprechendes natives Chrome-Messaging in Edge
- 18. Natives benutzerdefiniertes Dateidialogfenster PyQt
- 19. Anpassen von Beschriftungsschriften in Swing
- 20. Wie funktioniert volatile tatsächlich?
- 21. Swing JTextPane in javafx
- 22. Befehlszeile wie Widget in Swing
- 23. setDefaultCloseOperation nicht in Swing arbeitet
- 24. kann Swing von der Befehlszeile
- 25. Java Swing Fenster schließen, ohne App zu beenden
- 26. Natives .Net-Installationsprogramm/bootstrapper
- 27. Java Swing - Erstellen von dynamischen Fenstern
- 28. Wie gibst du einen Wert aus einem Java-Swing-Fenster von einer Schaltfläche zurück?
- 29. QWidget/QWindow Titelleiste: benutzerdefiniertes Aussehen, natives Feeling (ähnlich wie Chrome)
- 30. Wie funktionieren Werttypen in .NET tatsächlich?
Aber schließlich wird die Zeichnung in der nativen Umgebung ausgeführt, nur eine Sache ist jetzt eine Schnittstelle ist da zwischendurch, um diesen Schritt zu verarbeiten, und wenn dieser Puffer für Grafikzeichnen verantwortlich ist, ist es wie Zeichnen von Grafiken im Schwergewicht und leicht Komponenten, beide nehmen fast die gleiche Zeit oder beide können als teuer angesehen werden –
Abgesehen von dem, was ich beschrieben habe, ist es an der internen Implementierung von AWT zu bestimmen, wo und wann native Operationen angewendet werden. Einige Implementierungen kopieren möglicherweise einfach einen Bildpuffer, andere können Graphics2D-Anforderungen in native Grafikgrundelemente auf der verfügbaren Zeichenfläche übersetzen. – technomage