16. marts 2004 - 18:02Der er
29 kommentarer og 1 løsning
Repaint problem
Jeg er lige begyndt med java, og har fundet en tutorial med opgaver. I denne opgave skal jeg lave et ur, der opdateres hvert sekund, men den vil ikke som jeg vil. Jeg har denne kode: public class VisUr { public static void main(String[] arg) { Digitalur vindue = new Digitalur(); vindue.setSize(350,125); // sæt vinduets størrelse vindue.setLocation(200, 300); // sæt vinduet position vindue.setTitle("Mit første digitalur :-)"); // sæt vinduets titel vindue.setVisible(true); // åbn vinduet vindue.repaint(1000); } } Men den opdaterer ikke uret (dvs. måske opdaterer den én gang næsten inden vinduet er åbnet). Jeg har prøvet at at smide vindue.repaint(1000); ind i en for-løkke, der talte til 1000, men så opdaterede den helt vildt hurtigt, og ikke med et sekund imellem.
Hvad med at koere en timer paa det, saa ledes Timer t = new Timer(1000, listner), hvor listner er en actionlistner der soerger faar at repainte dit ur, det burde virke.
øh.... en actionlistener siger du?? hvad er så det? :-) I den tutorial jeg følger, påstår de, at det kan lade sig gøre med repaint(). Tutorialen er her: http://javabog.dk/OOP/kapitel9.html#afsn9.3 opgave 2
Ja, men det synes jeg også jeg gjorde i starten, og det virkede ikke.. Nå, men nu siger den at der er en fejl her: public class VisUr { public static void main(String[] arg) { Digitalur vindue = new Digitalur(); vindue.setSize(350,125); // sæt vinduets størrelse vindue.setLocation(200, 300); // sæt vinduet position vindue.setTitle("Mit første digitalur :-)"); // sæt vinduets titel vindue.setVisible(true); // åbn vinduet } } Den siger cannot resolve symbol, og peger på det store D i Digitalur... Ved du også hvad det nu skyldes? :) ... ved godt jeg er besværlig, men jeg er lige begyndt, og forstår ikke så meget java endnu... :)
Jeg har skam lavet den, og compilet den. Og den ligger i samme dir... Det virkede fint lige før, men nu tilføjede jeg repaint(), og så kom problemet... Hvis du skal bruge koden til Digitalur er den her: import java.awt.*; import java.util.*;
public class Digitalur extends Frame { public void paint(Graphics g) { // Herunder referer g til et Graphics-objekt man kan tegne med.
g.setColor(Color.blue); g.fillRoundRect(15,35,320,70,25,25); Date d = new Date(); String s = d.toString();
Jamen den eksisterer skam. Men jeg kan køre programmet, hvis jeg skriver: java -cp . VisUr Det læste jeg i et andet spørgsmål at man kunne skrive, og at man ikke behøvede det ekstra, hvis man tilføjede det dir man bruger til ens classpath i "enviroment variables" ... det gjorde jeg så tidligere, men efter at min computer har været slukket, er det ligesom om det er "gået væk". Dog er min classpath som det jeg ændrede den til i eftermiddags... Meget mærkeligt. Jeg ved ikke om du kan give mig svaret på det, ellers så bare læg et svar, så får du points, for du svarede jo på mit spørgsmål.
Det er nødvendigt for at finde program og compiler Hvis du ikke specifikt har sat din classpath i miljøvariablerne (eller autoexec) vil den forsvinde, og det var måske smart at gøre her til at begynde med, så det ikke går i kage p.g.a. den slags
Jamen jeg har netop sat classpath til mit arbejdsdir, for at undgå at skrive det. Og det står stadig i classpath, men den reagerer som om det ikke står der mere...
ja, det ved jeg godt, og det har jeg også gjort... Men jeg havde en j2ee version af java fandt jeg ud af... jeg ved ikke om det har nogen indflydelse, men nu er jeg ved at hente den normale version (j2se)...
Nu har jeg installeret j2se og tilføjet det i classpath, men den vil stadig ikke compile VisUr.java , men godt Digitalur.java Den siger stadig fejl i VisUr ved D i Digitalur her i linje 5 (som starte med Digitalur vindue...): public class VisUr { public static void main(String[] arg) { Digitalur vindue = new Digitalur(); vindue.setSize(350,125); // sæt vinduets størrelse vindue.setLocation(200, 300); // sæt vinduet position vindue.setTitle("Mit første digitalur :-)"); // sæt vinduets titel vindue.setVisible(true); // åbn vinduet } }
Det virker stadig ikke, men når jeg compiler med javac -classpath . VisUr.java kan den godt, men når jeg så vil køre programmet, og skriver java VisUr Så skriver den: Exception in thread "main" java.lang.NoClassDefFoundError: VisUr
Hey... Det virker nu... Nu har du jo været flink og hjælpe med et andet problem, så skal jeg ikke oprette et spørgsmål, så du kan få points for det... Men du skal i hvert fald have mange tak for din ihærdighed i at hjælpe!!
Jeg var jo åbenbart selv lidt rusten i den del af det, så det var vist på sin plads at få det frisket lidt op igen.
Fortsat god vind !
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.