Heim >Java >javaLernprogramm >Warum verzögert sich meine JAR-Bundler-Anwendung oder wird beendet, wenn ich OSXAdapter verwende?

Warum verzögert sich meine JAR-Bundler-Anwendung oder wird beendet, wenn ich OSXAdapter verwende?

DDD
DDDOriginal
2024-11-24 22:33:12770Durchsuche

Why is my JAR Bundler application lagging or terminating when using OSXAdapter?

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:

  • Verwenden Sie die Klasse „SwingWorker“, Dadurch wird automatisch „process()“ aufgerufen und das Modell auf dem EDT aktualisiert.
  • Verwenden Sie die 'invokeLater()'-Methode zum Aufrufen der Modellaktualisierung auf dem EDT.

Zusätzliche Hinweise:

  • Es wird empfohlen, einen alternativen Ansatz zu verwenden Erstellen eines Mac OS-Anwendungspakets, ohne auf JAR Bundler angewiesen zu sein.
  • Der in der Antwort bereitgestellte Codeausschnitt zeigt, wie um Zeilen zu einer JTable hinzuzufügen und das automatische Scrollverhalten beizubehalten.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn