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-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.
label angiver, hvad der står ved feltet. state angiver, om feltet er afkrydset.
Med getSelectedItem() undersøger man, hvad brugeren har valgt.
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.
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).
Egenskaben text angiver, hvad der står i feltet.
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.
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.
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.