| Linux - Friheden til at programmere i Java: Version 0.7.20040516 - 2020-12-31 | ||
|---|---|---|
| forrige | Kapitel 11. Grafiske brugergrænseflader | næste |
Komponenter er objekter, der bruges som en synlig del af en grafisk brugergrænseflade, f.eks. knapper, valglister, indtastningsfelter, mærkater.
Alle komponenter arver fra Component-klassen og har derfor dennes træk til fælles:
Metoderne setForeground(Color c) og setBackground(Color c) sætter farven hhv. baggrundsfarven for komponenten, svarende til egenskaberne foreground og background . Egenskaberne kan aflæses med getForeground() og getBackground().
En anden egenskab er font , der bestemmer skrifttypen. I tråd med de andre egenskaber sættes den med setFont(Font f) og aflæses med getFont().
Dette kan sammenfattes i en tabel over egenskaber, der er fælles for alle komponenter.
Tabel 11-1. Java
| Egenskab | Type | Sættes med | Læses med | ||||
|---|---|---|---|---|---|---|---|
| foreground | Color | setForeground(Color c) | getForeground() | ||||
| background | Color | setBackground(Color c) | getBackground() | ||||
| font | Font | setFont(Font f) | getFont() | ||||
| visible | boolean | setVisible(boolean synlig) | isVisible() | ||||
Nedenfor vil de mest almindelige komponenter blive beskrevet. Kun de nye egenskaber er beskrevet.
Figur 11-3. En trykknap. Egenskaben label angiver, hvad der står på knappen.
{linuxbog:java:Nordfalk1215422.png}
Tabel 11-2. Java
| Egenskab | Type | Sættes med | Læses med | ||||
|---|---|---|---|---|---|---|---|
| label | String | setLabel(String t) | getLabel() | ||||
Figur 11-4. Et afkrydsningsfelt. Kan både bruges til flueben og til radioknapper. Hvis man skal have radioknapper (der gensidigt udelukker hinanden), skal objekterne knyttes sammen af et CheckboxGroup-objekt.
{linuxbog:java:Nordfalk1215423.png}
label angiver, hvad der står ved feltet. state angiver, om feltet er afkrydset.
Tabel 11-3. Java
| Egenskab | Type | Sættes med | Læses med | ||||
|---|---|---|---|---|---|---|---|
| label | String | setLabel(String t) | getLabel() | ||||
| state | boolean | setState (boolean afkrydset) | getState() | ||||
Figur 11-5. En valgliste. Brug metoden add(String elementnavn) til at tilføje indgange.
{linuxbog:java:Nordfalk1215424.png}
Med getSelectedItem() undersøger man, hvad brugeren har valgt.
Figur 11-6. Et indtastningsfelt på en linje. Egenskaben text angiver, hvad der står i feltet.
{linuxbog:java:Nordfalk1215425.png}
Mindre brugt er: columns angiver, hvor bredt feltet skal være.
editable angiver, om brugeren kan redigere teksten i indtastningsfeltet.
echoChar bruges til felter, der skal skjule det indtastede, typisk adgangskoder.
Sæt f.eks. echoChar til '*' for at få vist stjerner i stedet for det indtastede.
Tabel 11-4. Java
| Egenskab | Type | Sættes med | Læses med | ||||
|---|---|---|---|---|---|---|---|
| text | String | setText(String t) | getText() | ||||
| editable | boolean | setEditable(boolean rediger) | isEditable() | ||||
| columns | int | setColumns(int bredde) | getColumns() | ||||
| echoChar | char | setEchoChar(char tegn) | getEchoChar() | ||||
Figur 11-7. Et indtastningsfelt på flere linjer.
{linuxbog:java:Nordfalk1215426.png}
Egenskaberne text, rows og columns angiver, hvad der står i feltet, hhv. bredde og højde.
Tabel 11-5. Java
| Egenskab | Type | Sættes med | Læses med | ||||
|---|---|---|---|---|---|---|---|
| text | String | setText(String t) | getText() | ||||
| editable | boolean | setEditable(boolean rediger) | isEditable() | ||||
| columns | int | setColumns(int bredde) | getColumns() | ||||
| rows | int | setRows(int højde) | getRows() | ||||
TextField og TextArea har en del egenskaber til fælles, og disse fællestræk ligger i superklassen TextComponent (se klassediagrammet).
Figur 11-8. En mærkat der viser en tekst (som brugeren ikke kan redigere i).
{linuxbog:java:Nordfalk1215427.png}
Egenskaben text angiver, hvad der står i feltet.
Tabel 11-6. Java
| Egenskab | Type | Sættes med | Læses med | ||||
|---|---|---|---|---|---|---|---|
| text | String | setText(String t) | getText() | ||||
Figur 11-9. En menu, hvor flere af indgangene kan ses samtidigt, og hvor man kan vælge en eller flere elementer. Brug metoden add(String elementnavn) til at tilføje indgange.
{linuxbog:java:Nordfalk1215428.png}
Med isIndexSelected(int index) undersøger man, om en indgang er valgt.
Egenskaberne rows og multipleMode angiver, hvad højden er, og om man kan vælge flere indgange samtidigt.
Tabel 11-7. Java
| Egenskab | Type | Sættes med | Læses med | ||||
|---|---|---|---|---|---|---|---|
| rows | int | setRows(int højde) | getRows() | ||||
| multipleMode | boolean | setMultipleMode(boolean m) | getMultipleMode() | ||||
Et tegne-område. Canvas er lidt besværlig, idet man skal nedarve fra klassen og implementere paint(Graphics g) for at kunne tegne noget.
En lettere (men ikke nødvendigvis altid smartere) måde er som sagt at definere paint()-metoden direkte i appletten/vinduet som vi har gjort tidligere.