12. marts 2003 - 15:26
Der er
14 kommentarer og 2 løsninger
Timer
Hvordan laver men en timer i java der kan tælle fra 1 til 10 med 0,7 sekunders interval i en GUI og en TUI (text user interfase f.eks. en dos prompt)??? Jeg har programmeret en del i VB og der er der et "timer objekt" man kan bruge. Jeg har ikke fundet noget tilsvarende i java.
Annonceindlæg fra Opentext
12. marts 2003 - 15:30
#1
du burde bare kunne skrive (utsetet) try{ for(int i=1 ; i<=10; i++){ System.out.println(i); Thread.sleep(700); //milisekunder }
12. marts 2003 - 15:39
#2
Jeg er ikke helt med på det med exceptions. hvordan fanger jeg den? jeg får fejlen: Test2.java:5: 'try' without 'catch' or 'finally'
12. marts 2003 - 15:40
#3
Du kan enten selv starte en Thread der sleeper og gør hvad den skal. Eller du kan bruge java.util.Timer til at starte en thread med der er scheduleret til at vågne på bestemte tidspunkter. TUI er jo bare System.out.println. GUI skal du have lavet noget som kan opdatere en label eller lignende (har du overvejet en progress bar ?).
12. marts 2003 - 15:40
#4
nåh jo min fejl: try{ for(int i=1 ; i<=10; i++){ System.out.println(i); Thread.sleep(700); //milisekunder } catch(InterruptedException e){}
12. marts 2003 - 15:42
#5
Thread.sleep kald skal anbringes i en try catch: try { Thread.sleep(n); } catch (InterruptedException ex) { // et eller andet } medmindre din metode er erklæret til at throwe den exception.
12. marts 2003 - 15:49
#6
Indtil videre har jeg med jeres hjælp skrevet følgende kode der ikke virker: class Test2 { public static void main (System[] Args) { try{ for(int i=1 ; i<=10; i++) { System.out.println(i); Thread.sleep(700); //milisekunder } catch(InterruptedException e){} } } }
12. marts 2003 - 15:51
#7
Indtil videre har jeg med jeres hjælp skrevet følgende kode der ikke virker: class Test2 { public static void main (System[] Args) { try{ for(int i=1 ; i<=10; i++){ System.out.println(i); Thread.sleep(700); //milisekunder } } catch(InterruptedException e){} } } try{ bla... } catch(Exception e){ bla... }
12. marts 2003 - 15:51
#8
hvad er forkert? pyt med GUI'en so far. kan jeg få det her til at virke kan jeg sikkert også få det til at virke i GUI'en (håber jeg)
12. marts 2003 - 15:55
#9
prøv det her det virker: public class TimerSleep { public static void main(String[] args) { try{ for(int i=1 ; i<=10; i++){ System.out.println(i); Thread.sleep(700); //milisekunder } } catch (Exception e) { System.err.println(e); } } }
12. marts 2003 - 15:57
#10
Try bruges for at fange fejl der evt. opstår. Exception e fangler alle fejl og System.err.println(e) udskriver dem.
12. marts 2003 - 16:02
#11
Du har erklæret din main forkert. public class Test2 { public static void main(String[] args) { try { for (int i = 1; i <= 10; i++) { System.out.println(i); Thread.sleep(700); //milisekunder } } catch (InterruptedException e) { e.printStackTrace(); } } }
12. marts 2003 - 16:03
#12
Og det kan godt betale sig at gøre lidt ud af sin indrykning. Det gør koden meget nemmere at læse.
12. marts 2003 - 16:03
#13
Orp hvordan kunne jeg dog overse det... Copy/paste skal bruges med omtanke :)
12. marts 2003 - 16:06
#14
Helt enig, men det er lidt svært når man skriver direkte ind i en ikke-programmerings editor. Tab-knappen virker ikke efter hensigten herinde
12. marts 2003 - 16:13
#15
ok :-) takker
12. marts 2003 - 16:19
#16
Med hensyn til indrykning og Eksperten så har jeg gode erfaringer med at skrive koden i IDE, bruge hard tabs og copy paste.
Kurser inden for grundlæggende programmering