Grafikanpassning av program

Nedan beskrivs en generell metod som underlättar när man vill grafikanpassa ett textbaserat program. En förutsättning för att det hela ska fungera är att det textbaserade programmet är välstrukturet och därmed lätt att bygga ut.

  1. Rita upp hur du vill att programmet ska se ut. Markera av vilken klass varje grafikkomponent är. Försök även gruppera de olika komponenterna. Varje grupp kommer senare bli en instans av klassen Panel.
  2. Om du vill ha en Applet, skapa en ".html"-fil och skriv HTML-kod.
  3. Se till att få tillgång till de grafiska komponenterna:
  4. Ta reda på vilken klass som är huvudklass. Huvudklassen är den klass som innehåller de metoder som gör/styr allt. I till exempel ett spel skulle denna klass utgöra/beskriva det fysiska spelet. (Detta behöver inte vara den klass som innehåller main().)
  5. Om du vill ha en applet, låt huvudklassen utvidga Applet: Om du vill ha en fristående applikation, låt huvudklassen utvidga Frame:
  6. Om du har en Frame, lägg till (klass)metoden main() i huvudklassen. Låt main() skapa en instans av huvudklassen och anropa init(), packa ihop allt samt ta fram fönstret: Om du vill att detta fönster ska gå att stänga kan du lägga till följande magiska kod:
    programmet.addWindowListener(new WindowAdapter() {
        public void windowClosing(WindowEvent we) {
            System.exit(0);
        }});
    
  7. Lägg till (instans)metoden init() i huvudklassen.
  8. Lägg till grafikkomponenter:
  9. Gör allt synligt:
  10. Fixa layout:
  11. Vänta med att lägga ned mer energi på utseendet till dess att programmet fungerar som det ska.
  12. Utvidga huvudklassen till att vara en ActionListener
  13. Se till att grafikkomponenterna får instansen av huvudklassen som ActionListener:
  14. Lägg in spårutskrifter i actionPerformed(). Nedan är exempel på hur ActionEvent-objektet "e" som Java skickat med till actionPerformed() utnyttjas för att få reda på vilken "action" som inträffade.
  15. Modifiera eventuellt vilken "action" en speciell komponent ger upphov till:
  16. Grafikprototypen är klar! Bygg vidare genom att lägga till ytterligare komponenter och metoder som anropas i metoden actionPerformed() till dess du är nöjd. Följande punkter ger tips om fortsatt anpassning.
  17. Separera alla uppmaningar till användaren från efterföljande inläsning. Om du t ex tidigare haft en metod liknande ställFrågaOchLäsSvar() bör du efteråt endast ha ställFråga(). Svaret bestämmer användaren själv när och om hon vill ge och ger det då genom att fylla i grafiska textfält, trycka på knappar etc. vilket gör att metoden actionPerformed() anropas. actionPerformed() har till uppgift att ta hand om svaret.
  18. Metoder som tidigare var deklarerade med throws IOException ska vara utan detta om metoden inte längre innehåller några readLine().
  19. Se till att programmet vid uppstart endast kör "ett varv" av en tidigare eventuell huvudslinga. Observera att det sista som ska hända är att användaren ska uppmanas göra något (sedan är det användarens tur att med någon "action" få programmet att fortsätta).
  20. Se till att källkoden i actionPerformed() endast gör saker motsvarande ett varv ur en tidigare eventuell huvudslinga. Precis som vid uppstarten ska det sista vara att uppmana användaren att göra något (igen). Försök hålla källkoden i actionPerformed() lättläst genom att utnyttja metodanrop till andra metoder.
  21. Om din actionPerformed() ska hantera flera olika "actions" från användaren utnyttjar du ActionEvent-objektet "e" enligt exemplen nedan.

^ Upp till kurssidan.


Sidansvarig: <efo@nada.kth.se>
Senast ändrad 2 december 2001
Tekniskt stöd: <webmaster@nada.kth.se>