Jeg har efterhånden været i gang med at lære mig selv Java over et stykke tid nu, ved hjælp af
http://java.sun.com/docs/books/tutorial/ , og føler nu at jeg har læst nok til at kunne lave min første application med en GUI.
Efter en kort overvejelse besluttede jeg mig for at lave et spil (kunne ikke lige finde en beskrivelse af det brætspil jeg prøver at lave på nettet, så i må nøjes med min dårlige forklaring)
**** Spil beskrivelse start (spring bare over hvis det ikke er vigtigt for dig)*****
selve spillet har en plade på 10*10 felter, der er 2 spillere med (sort og hvid), de skiftes til at lægge en brik på pladen.
Det gælder så om at lægge sin brik i enden af en lang række af fjendens brikker, som skal være afsluttet af en af dine brikker, for så ændre du alle hans brikker til dine brikker.
Derefter går det bare ud på at overtage så mange felter som overhovedet muligt, før alle felter er brugt op.
***** spil beskrivelse slut *****
så jeg begynder på den (for mig) lette del først. jeg skriver en class med alle fields og metoder der skal til for at kunne lave en plade, sætte brikker på osv. da jeg har lavet den, tester jeg om den virker ved hjælp af en ordentlig bunke system.out.format, og konkludere at den virker. lad os kalde den klas "spil" classen
Så begynder jeg på det nye emne, at lave en class der skal lave min GUI vha Swing. det er så det usikre felt for mig og her jeg har fået en del problemer (eller først fik jeg et problem, prøvede at løse det og fik endnu et problem osv.)
min egen tanke med hvordan min GUI skal laves var vha 10*10 JButtons som skulle repræsentere hver felt. Når man så trykkede på dem ville det resultere i en Event der redigerede min initiaterede "spil" objekt.
*** min løsning start (igen spring bare over hvis det ikke er vigtigt ***
skal lige siges at jeg bruger Netbeans IDE 5.5.1 til at programere i.
min første tanke var 2 delt.
1) mine buttons skulde, når der blev trykket på dem, gå ned i mit "spil" objekt, som jeg havde lavet i min Main metode, og ændere dens felt variabel til dens nye tilstand, efter den selvfølgelig havde tjekket at det var et lovligt klik.
2) lave en SwingWorker der hele tiden læser de forskellige knappers/felters variabler nede i min "spil" class, og ændre knappernes iconer til at vise det.
min problemer med den tanke er:
med 1'eren er jeg ikke lige begyndt endnu, men det handler vel om at jeg skal lade en metode catche nogle events der bliver throwet? (har ikke lige undersøgt den sag SÅ meget og tror langt fra at det er rigtigt, men nogle få hints til den løsning er da velkomne)
med 2'eren har jeg STORE problemer. for det kan jeg ikke finde ud af at skrive min SwingWorker ordentlig så den endelig bliver startet (det er mit første spørgsmål)
derefter kan jeg ikke lave en Static vertion af min GUI, som kan blive redigeret af min SwingWorker, men jeg ved ikke engang om den skal være static for at man kan lave ændringer i ens GUI. (så spørgsmål nummer 2 er hvordan skal det gøres?!)
spørgsmål nummer 3: nu har jeg prøvet at læse documentation for alle mulige former for API'er og føler bare at jeg misser et eller andet åbenlyst... Så hvis jeg gør det så må i meget gerne oplyse mig.
I får lige alt den kode jeg har skrevet, det er meget rodet, tror jeg, men har prøvet at skrive noter ved de færdige dele så de er mere overskuelige.
her først er "Spil" metoden som egentlig heder BlackAndWhite, navnet på mit kommende spil:
http://pastebin.com/f141d9fffSå kommer den class med main, som også er en Jframe lavet i netbean, så der er en smule (indtil videre), pre genereret kode, men den vigtige del er main metoden, hvordan jeg starter min SwingWorker:
http://pastebin.com/f3efd10cdher er så min swingworker, den er heller ikke komplet fordi jeg ikke kan få den til at ændre noget som helst i min GUI. Jeg har prøvet lidt af hvert, så det der står der nu er nok et meget vild gæt på hvordan det skal komme til at se ud:
http://pastebin.com/f310d1c68**** løsning slut ****
Jeg ved ikke lige hvordan du vil svare mig uden at læse min løsning, he he, men held og lykke med det.
Jeg takker på forhånd, først fordi du har læst hele denne smøre, og derefter takker jeg for at du vil overveje at svare.
PS: hvis 200 point er for lidt til sådan en løsning, skal i bare sige til... men jeg har dog kun 500 at gøre af lige nu.
Indlæg senest redigeret d. 26.10.2007 17:03 af Bruger #12687