Föreläsningsbilder: F3-bilder
Programexempel på föreläsningen
Vi byggde upp följande exempel med JFrame och en knapp.
Har ändrat Button till JButton (swing-knapp)
jämfört med föreläsningen och flyttat de två satser i konstruktorn
som börjar med cc till konstruktorns början, annars är det
exakt som på föreläsningen. Koden finns här:
JFrame13.java
På föreläsningen togs Layoutmanagers upp snabbt. Här kommer lite mer info:
Layoutmanagers
Container -komponenter har en Layoutmanager .
En layoutmanager är en strategi för hur komponenter ska placeras inuti
containern. En standard-layoutmanager finns alltid från början men man kan
lägga in en egen om man vill. Här är några exempel på Layoutmanagers.
De första tre är enkla, de två sista är lite krångligare att använda.
- FlowLayout: Komponenter läggs radvis från vänster till höger
i behållaren. Varje
add(...) lägger en komponent till höger
om senast inlagda. Om "raden" är slut används nästa rad. Komponenterna
centreras på raden (om man inte anger annat). Behållarklassen
JPanel har FlowLayout som standard.
- GridLayout: Ett rutnät definieras.
setLayout(new GridLayout(3,2)) gör att behållaren blir indelad
med tre rader och två kolumner.
add(...) fyller på radvis uppifrån och ned och från vänster
till höger.
- BorderLayout: Behållaren är indelad i en stor mittendel (CENTER)
och "remsor" längs alla fyra sidorna. Sidorna kallas NORTH, EAST, SOUTH och
WEST. Det passar t.ex. att lägga scrollbars på sidorna (alla) och
meddelanden i NORTH eller SOUTH.
För att välja denna skrivs
setLayout(new BorderLayout()) .
Man placerar komponenter genom att ange destinationen:
add(flowers ,BorderLayout.CENTER) lägger komponenten
flowers i mitten av behållaren.
Sidoremsor som inte används syns inte. Om man gör add(...)
utan att ange destination kommer CENTER att användas.
Behållaren JFrame har BorderLayout som standard.
- GridBagLayout
- BoxLayout
På föreläsningen kördes ett program som visade användning av
JPanel och layoutmanagers BorderLayout
och GridLayout . Vi tittade inte på Javakoden.
Den finns här: PanelDemo2.java.
Programfönstret såg ut så här:
|