Z_AGo Skrevet 6. mars 2009 Del Skrevet 6. mars 2009 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
LostOblivion Skrevet 6. mars 2009 Del Skrevet 6. mars 2009 100 ms er vel kanskje litt lite? Lenke til kommentar
Z_AGo Skrevet 6. mars 2009 Forfatter Del Skrevet 6. mars 2009 jojo det er det =P men får den ikke til å funke om jeg setter den på 1000 eller 1000000 som jeg vil =P Lenke til kommentar
pgdx Skrevet 6. mars 2009 Del Skrevet 6. mars 2009 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
nirolo Skrevet 6. mars 2009 Del Skrevet 6. mars 2009 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
Z_AGo Skrevet 7. mars 2009 Forfatter Del Skrevet 7. mars 2009 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 Lenke til kommentar
zulo Skrevet 8. juli 2009 Del Skrevet 8. juli 2009 KAn du legge ut koden til Tegning klassen? Lenke til kommentar
Ueland Skrevet 8. juli 2009 Del Skrevet 8. juli 2009 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå