bild
Skolan för
elektroteknik
och datavetenskap

Programutvecklingsteknik

Övning 2

  1. Skriv en komponent med 12 (4x3) knappar som representerar siffrorna 1,2,3 ...9 på de tre översta raderna och *, 0 och # på den understa raden. Komponenten ska komma ihåg de hittills inmatade tecknen men när man trycker på * så rensas inmatningen. # är verkningslös (eller hitta på en intressant betydelse för den). Obs! Den inmatade koden visas inte upp i komponentens grafiska del utan läses av med en metod. Rita ett UML-klassdiagram först förstås!

    Lösningsförslag, javakod:  Keypad.java   Tryck på # suddar senast inmatade tecken. Inluderar även en del av lösningen till uppgift 3 i och med att det finns ett JTextField-attribut som kan sättas om man vill men en särskild konstruktor för det.

  2. Skriv ett testprogram med mainmetod som öppnar ett fönster och testar komponenten. Det går att lägga main-metoden i komponenten. Hur är det möjligt? Är det någon fördel med det jämfört med att lägga den i en ny klass? Lösning: Main-metoden i Keypad gör testen.

  3. Modifiera eller utvidga eller åstadkom på annat sätt en komponent som liknar den i uppgift 1 men som visar upp den inmatade koden i ett fält under tangenterna.
    Lösningsförslag, javakod:  DisplayFrame.java Mainmetod med JFrame som testar komponenten inkluderas.

    Kör appleten! På kursledarens dator syns inte Label-fältet under knappsatsen när det är tomt! En TextField syns även som tom. Textfield är en komponent för både in- och utmatning. Inmatning kan förbjudas genom anrop av setEditable(false) på Textfield-komponenten.

  4. Gör en knappkomponent baserad på Swingkomponenten JButton. Komponenten ska kunna ha tre olika utseenden som väljs genom ett metodanrop. Ett alternativ kan vara tomt (utan bild). Här finns två bilder att använda: frog.gif penguin.gif. Lösningsförslag:  BildknappKomponent.java 
Copyright © Sidansvarig: Ann Bengtsson <ann@nada.kth.se>
Uppdaterad 2014-04-07