And Action Nu när du skapat olika komponenter ska vi se till att något händer det då vi exempelvis trycker på en knapp. För att hantera det som sker kommer vi använda Actionlistener Övningarna som följer görs alla var för sig! Vill du ha tydliga exempel och förklaringar utöver de som ges här se http://www.java-examples.com/ Applets And AWT Ovning5_1 1. Börja med grunden för en ny applet enligt arbetsblad 4 2. Skapa en knapp och placera den även i init-metoden 3. Skapa en array för text. Ge den innehållet = Ett, Tryck två, Tryck tre ; 4. Du behöver också en minnesplats för heltal med startvärde 0. Nu har du en knapp som är förberedd så att något ska kunna ske när du trycker på den. För att detta ska kunna ske behöver du nu göra följande: 1. Längst upp i ditt dokument lägger du till: import java.awt.event.*; 2. Direkt efter din public class lägger du till: implements ActionListener 3. Inom init-metoden efter där du skapat din knapp skriver du: DinKnappsNamn.addActionListener(this); Detta kommer vara din lyssnare som fångar upp om någon trycker på knappen. 4. För att få något att ske då knappen tryckts behöver du skapa en ny metod efter initmetodens område: public void actionperformed (ActionEvent e) //Metod för att fånga händelse if (X < 3 ) OBS! X ersätts med namnet på din minnesplast för heltal DinKnappsNamn.setLabel(dinTextArraysNamn[X]); // läser data från text[postion] X ++ // flytta ett steg i text-arrayen else Inom detta område vad som ska ske när metoden actionperformed X = 0; används av programmet DinKnappsNamn.setLabel(dinTextArraysNamn[X]); That s IT Testa din knapp och se vad som händer! Ändra och lägg till några ord/meningar i text-arrayen. Gör nödvändiga förändringar. För att göra det lite roligt så kan exempelvis första texten vara: Dont t press me Vad händer sen om någon ändå trycker Skicka in arbetet! Vänd för nästa uppgift!
Ovning5_2 Denna gång ska vi åter sätta action på två knappar men även på en textetikett Label 1. Skapa grunden för en ny applet enligt tidigare. Lägg till så du i programmet kan använda Actionlistener 2. Två knappar tack med texten Räkna på den första knappen och Nollställ på den andra. 3. En minnesplats för heltal. Ge den namnet AntalKlick och innehåll 0. 4. En minnesplats för textetikett med texten Du har klickat + AntalKlick + gånger 5. Se till att knapparna och textetiketten skapas inom init-metoden 6. add actionlistener till de båda knapparna. En i taget. 7. Skapa metoden för actionperformed (se förra uppgiften) 8. Då vi nu har två knappar istället för bara en som i den förra uppgiften måste metoden för hur vi fångar upp vilken knapp som trycks förändras något. Detta sker i if-satserna enligt följande: if (e.getsource ( ) = = namndinknappett ) AntalKlick++ ; namndintextetikett.settext ( Du har klickat + AntalKlick + gånger ); if (e.getsource ( ) = = namndinknapptvå ) AntalKlick = 0 ; namndintextetikett.settext ( Du har klickat + AntalKlick + gånger ); Testa och om appleten fungerar skicka in! Ovning5_3 I denna övning ska du skapa en knapp, två textetiketter och två kryssrutor Checkbox Du ska även ha möjligheten att kunna slumpa fram två tal och spara dessa i egna minnesplatser.(kurs A arb.blad 3) Detta ska ske när programmet körs: Du ska ha en knapp med texten Slumpa. De två etiketterna ska kunna visa de slumpade värdena. (ett värde/etikett) De två kryssrutorna kan ha texten Stopp 1 resp. Stopp 2. När programmet körs ska tal slumpas fram och visas var gång en knapptryckning görs. Om en kryssruta markeras ska ingen ny slump göras och presenteras för den etikett närmst innan kryssrutan. Bygginstruktioner följer på nästa sida
Bygginstruktioner 1. Skapa åter grundmall enligt tidigare. 2. Skapa de minnesplatser som beskrivits innan för denna övning 3. I init-metoden lägger du först din knapp samt actionlistener till denna. 4. Add sedan en textetikett och en kryssruta 5. följt av din andra textetikett och din andra kryssruta 6. I metoden för actionpermed ska du ha en if-sats som känner när du trycker på din knapp Inom den förra if-satsen skapar du en ny if-sats med följande syntax if ( dinförstakryssruta.getstate( ) = = false ) din slump-syntax din textetikett med nya slump-värdet (se förra uppgiften) //getstate( ) kommer känna av om kryssrutan är markerad (true) eller avmarkerad (false) 7. Skapa en if-sats till som den ovan men nu för din andra kryssruta och slumpvärde 2 Testa och om det fungerar Skicka in! Ovning5_4 Den verkliga utmaningen. Du ska skapa ett digitalt Yatzy spel. Använd alla dina kunskaper som du fått i de tidigare uppgifterna. Ett tips är att du spelar spelet på riktigt. Funderar och skriv ner genom att skapa en tankekarta med vilka komponenter du behöver, hur många av de olika osv. På nästa sida får du en fullständig beskrivning kring regler för Yatzy.
YATZY Mål: Att få en fungerande applet för att kunna spela en omgång Yatzy Regler för Yatzy: Spelet ska använda fem Tärningar som kan kastas tre gånger i varje omgång. Om man inte vill kasta om någon tärning ska man kunna markera denna/dessa och kasta om övriga. Man ska kunna välja var tärningarnas summa ska placeras och programmet ska förstå vilka tärningars summor som ska placeras på valt fält. Spelet ska efterhand addera ihop summorna. Om summan för de första sex fälten (1-6) är lika med eller mer än 63 poäng så ska bonuspoäng adderas till slutsumman. Genom en metod som ni väljer så ska poängen kontrolleras så att den blir riktig i det fält där den ska presenteras. Innebär att om man fått tre sexor så ska summan i fältet för 6:or bli 18 poäng och inte 15 eller 16 osv. Om man får en dålig omgång ska man kunna välja att sätta noll poäng i valfritt fält. Hjälpmedel: Tidigare övningar och Internet dock ej tillåtet att ladda ner färdiga filer och använda sig av dem rakt av Men många nyttiga exempel kan fås på: http://www.java-examples.com/applets-and-awt Vid arbete i grupp ska alla kunna förstå vad var del av kodningen gör!!! 1:or 2:or 3:or 4:or 5:or 6:or Summa Bonus +50 p 1par 2par tretal fyrtal Liten 15 p straight Stor 20 p Straight Kåk Chans Yatzy 50 p Slut summa Exempel på fält för att räkna samman summor. Redovisning: I javafilen ska stå med namn och klass som kommentar Färdig Java-fil skickas in! // kommentar. Tips: Försök att dela upp programmet i bitar och sedan bygga dessa bitar en åt gången för att se att de fungerar. Ex. I programmet är det tänkt att ni ska slumpa fram talen på fem tärningar. Börjar med att få en tärning till att fungera och att dess tal sparas i en variabel(minnesplats). När de bitarna fungerar kan man öka på med fler bitar efterhand som man ser att de fungerar. Med andra ord: Dela upp i små enskilda program och när dessa sedan fungerar ~ sätt samman till ett program.
Lycka till!!! Mickey