Heim >Java >javaLernprogramm >Warum verzögert sich meine JAR-Bundler-Anwendung oder wird beendet, wenn ich OSXAdapter verwende?
JAR Bundler verwendet OSXAdapter, wodurch die Anwendung verzögert oder beendet wird
Diese Frage ergibt sich aus der Notwendigkeit, eine JAR-Datei einem bestimmten Dateityp zuzuordnen (.jarbundlerproblem) mit Apples Jar Bundler für OS Argumente.
Um dies zu erreichen, nutzte der Entwickler die OSXAdapter-Bibliothek, um dateibezogene Ereignisse zu verarbeiten. Diese Änderung hat jedoch zu einem inkonsistenten Verhalten in der Anwendung geführt. Manchmal öffnet es sich über einen längeren Zeitraum nicht oder zeigt ein leeres Fenster an.
Analyse und Lösung:
Das Problem ergibt sich aus dem Potenzial der Anwendung, das Ereignis zu blockieren Dispatch-Thread (EDT) aufgrund der Verwendung von „Thread.sleep()“ in der Methode „doWork()“. Dies kann dazu führen, dass die GUI nicht vollständig reagiert oder sogar dazu führt, dass die Anwendung verzögert oder beendet wird.
Empfohlener Ansatz:
Um dieses Problem zu beheben, wird empfohlen, Folgendes zu tun: Verwenden Sie einen SwingWorker oder implementieren Sie die „Runnable“-Schnittstelle, um die zeitaufwändige Aufgabe in einem separaten Thread auszuführen. Dadurch wird das EDT entlastet und die GUI bleibt reaktionsfähig.
Alternative Ansätze für das automatische Scrollen von JTable:
Zusätzliche Hinweise:
Das obige ist der detaillierte Inhalt vonWarum verzögert sich meine JAR-Bundler-Anwendung oder wird beendet, wenn ich OSXAdapter verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!