Gå til innhold

Hvrdan få sleep til å funke


Anbefalte innlegg

jeg har et program som skriver ut 25 tilfeldige tall, disse blir skrevet ut ved hjelp av en graf. så har jeg en sorteringsalgoritme. sorteringen blir gjort og grafaen blir satt stigende. problemet mitt er at jeg skal legge inn en sleep funksjon som gjør at jeg ser at stolpe nummer 1 bytter plass med stolpe "i" også stolpe 2 med (n) med en pause mellom hver

 

import java.util.logging.Level;
import java.util.logging.Logger;

public class Insertionsort {

Tegning panel = new Tegning();

public void pause(int t) {
	try {
		Thread.sleep(t);
	} catch (InterruptedException ex) {
		Logger.getLogger(Tegning.class.getName()).log(Level.SEVERE, null, ex);
	}
}

public void run() {
	//here i start an algorithm which sorts numbers.
	for (int i = 1; i < knappene.tallrekke.length; i++) {
		for (int j = 0; j < i; j++) {
			if (knappene.tallrekke[i] < knappene.tallrekke[j]) {
				int temp = knappene.tallrekke[j];
				knappene.tallrekke[j] = knappene.tallrekke[i];
				knappene.tallrekke[i] = temp;
			}
		}

		pause(100);
		panel.repaint();
	}//end algorithm
}
}

Lenke til kommentar
Videoannonse
Annonse

bytt ut med

	public void pause(int t) {
	try {
		System.out.print("sleeping ... ");
		TimeUnit.MILLISECONDS.sleep(t);
		System.out.println("awake");
	} catch (InterruptedException ex) {
		Logger.getLogger(Tegning.class.getName()).log(Level.SEVERE, null, ex);
		ex.printStacktrace();
	}
}

Lenke til kommentar

Endret programmet ditt litt, og sovingen ser ut til å fungere som du forventer. Se koden under.

 

	
public class Insertionsort {

public static void main(String [] args) {
	new Insertionsort().run();
}

//Tegning panel = new Tegning();

public void pause(int t) {
	try {
		Thread.sleep(t);
	} catch (InterruptedException ex) {
	}
}

public void run() {
	for (int i = 1; i < 100; i++) {
		System.err.println(new Date());
		pause(1000);
	}//end algorithm
}
}

Lenke til kommentar
  • 4 måneder senere...
jeg vet ikke om problemet ligger i at jeg har en actionlistener i GUI klassen min (som er hovedklassen) med repaint der! men det funker ikke som jeg vil

 

Hva mener du med "funker ikke".

Regner med du vet at GUI vil fryse inntil en jobb er gjort med mindre du faktisk har laget jobbklasser som egne tråder?

Ellers anbefaler jeg at du leser litt mer teori rundt emnet først for å få litt mer forståelse rundt hvordan alt henger sammen mtp GUI/Tråder. :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...