# Thread.sleep in GUI



## kurtextrem (20. Jun 2011)

Hi,
Ich war mir jetzt nicht ganz sicher ob das hier auch die richtige Kategorie ist, naja ist jetzt auch erstmal egal.
Also zu meinem Problem: Thread.sleep lässt den ganzen Thread einfrieren, aber ich bräuchte ein sleep, welches noch Gui Buttons plus darauf reagieren lässt

```
/snip
for (int i = 0; i < howOften; i++) {
				if (xyz) {
					jLabel8.setText(Integer.toString(i+1));
					blabla bla = new blabla(jTextArea1.getText(), jCheckBox1.isSelected());
					try {
						Thread.sleep(sleep); // <-- hier
					} catch (InterruptedException ex) {
						Logger.getLogger(FlooderView.class.getName()).log(Level.SEVERE, null, ex);
					}
				}else{
					stop();
					return;
				}
			}
/snip
```
Ich bin ein Java anfänger und ich code mit NetBeans
Ich hoffe ihr könnt mir helfen, danke.

LG,
Kurt


----------



## tfa (20. Jun 2011)

Du darfst den Event Dispatcher Thread (EDT) nicht schlafen legen. Wenn du das machst, friert die ganze Anwendung ein.
Lang laufende Aktionen realisiert man am besten über den SwingWorker. Ein kleines Beispiel findest du hier: http://www.java-forum.org/blogs/tfa/25-snippet-swingworker.html


----------



## kurtextrem (20. Jun 2011)

Wow, das ging ja schnell :toll:

Danke, ich gucks mir mal an!


----------



## kurtextrem (20. Jun 2011)

Hi,
Das Funktioniert jetzt schon mal ganz gut, nur wie kann ich dort ein sleep einbauen? Ich glaub ich habs noch nicht ganz kapiert.
Der Code:

```
worker = new SwingWorker<String, Void>()
			{

				@Override
				protected String doInBackground()
				{
					for (int i = 0; i < howOften; i++) {
						if (blaEnabled) {
							jLabel8.setText(Integer.toString(i + 1));
							bla blabla = new bla(jTextArea1.getText(), jCheckBox1.isSelected());
						} else {
							stop();
							return "finished";
						}
					}
					return "finished";
				}

				@Override
				protected void done()
				{
					stop();
				}
			};
			// Execute the SwingWorker; the GUI will not freeze
			worker.execute();
```
Ich weiß, ich hab hier jetzt kein Thread.sleep, aber da ich weiß, dass dann alles, müsst ihr / du mir leider helfen

LG,
Kurt


----------



## SlaterB (20. Jun 2011)

sleep kannst du wie zuvor einbauen,
ohne sleep ist ein Thread gar nicht nötig, dann dauert doch alles nur Augenblicke


----------

