Swing-Benutzeroberfläche stoppt mit Thread.sleep()
Ihre Abfrage legt nahe, dass die Verwendung von Thread.sleep() in Verbindung mit JFileChooser zu einem führt Sperrung der Benutzeroberfläche, wodurch die Anzeige von Swing-Elementen verhindert wird. Der Grund für dieses Verhalten liegt darin, dass Thread.sleep() im Event Dispatch Thread (EDT) aufgerufen wird, der für die Verwaltung der GUI verantwortlich ist. Infolgedessen wechselt die Benutzeroberfläche in einen Ruhezustand, sodass sie nicht mehr reagiert.
Um dieses Problem zu beheben, wird empfohlen, stattdessen einen javax.swing.Timer zu verwenden. So funktioniert es:
Timer t = new Timer(1000 * 5, new ActionListener() { public void actionPerformed(ActionEvent e) { // Perform your recurring task } });
Durch die Verwendung von Timer wird Ihre periodische Aufgabe außerhalb des EDT ausgeführt, wodurch sichergestellt wird, dass die Benutzeroberfläche reagiert, während Ihre Aufgabe parallel ausgeführt wird.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3