Dette er del 2 af en kort oversigt over dele af Java. Denne del indgår ikke i pensum for kurset Databehandling. Oversigten består af følgende afsnit:
I Java-oversigtens del 1 vistes en række grundlæggende applet-komponenter; her er nogle mere avancerede komponenter.
Programtekst | Betydning | Anvendelse |
---|---|---|
Valg (Choice) | ||
Choice forsendelse;
| Erklær en valgmenu | erklæring |
forsendelse = new Choice();
| Opret valgmenu | init |
forsendelse.addItem("Post Danmark");
| Tilføj muligheder til valgmenu | init |
add(forsendelse);
| Tilføj valgmenu til applet | init |
forsendelse.getSelectedIndex();
| Nummeret (0, 1, ...) på den valgte mulighed | |
forsendelse.getSelectedItem();
| Teksten i den valgte mulighed | |
Afkrydsningsfelter (Checkbox) | ||
Checkbox berltid, jylpost, pol;
| Erklær tre afkrydsningsfelter | erklæring |
berltid = new Checkbox("Berlingske Tidende");
| Opret afkrydsningsfelter med givne tekster | init |
add(berltid);
| Tilføj afkrydsningsfelter til applet | init |
berltid.getState()
| Er feltet berltid afkrydset? | |
Afkrydsningsfelter, gensidigt udelukkende (CheckboxGroup) | ||
CheckboxGroup mk;
| Erklær gruppe og afkrydsningsfelter | erklæring |
mk = new CheckboxGroup();
| Opret gruppe og afkrydsningsfelter med givne tekster | init |
add(mand);
| Tilføj afkrydsningsfelter til applet | init |
kvinde.getState()
| Er feltet kvinde afkrydset? | |
Valgliste (List) | ||
List lande;
| Erklær en valgliste | erklæring |
lande = new List(3, false);
| Opret valgliste med tre linier | init |
lande = new List(3, true);
| Opret valgliste med flere samtidige valg | init |
lande.addItem("Sverige");
lande.addItem("Tyskland");
lande.addItem("Frankrig");
lande.addItem("Kenya");
lande.addItem("Vietnam");
| Tilføj muligheder til valgliste | init |
add(lande);
| Tilføj valgliste til applet | init |
lande.getSelectedItems()
| De valgte muligheder (som tabel af tegnstrenge) |
Hvis man bare tilføjer komponenter til en applet med
add
, så vil komponenternes placering (layout) afhænge af
applettens størrelse og andre tilfældige forhold. Man kan derfor ikke
være sikker på at alle brugere ser det samme layout, og resultatet vil
sandsynligvis forekomme rodet.
For at få ensartet layout bruger man en `layout-manager'. De mulige layout-managere er null, BorderLayout, CardLayout, FlowLayout, GridBagLayout, GridLayout.
setLayout(new FlowLayout()); add(new Button("komponent1")); add(new Button("komponent2")); add(new Button("komponent3")); add(new Button("komponent4")); add(new Button("komponent5"));
setLayout(new GridLayout(2,3)); add(new Button("komponent1")); add(new Button("komponent2")); add(new Button("komponent3")); add(new Button("komponent4")); add(new Button("komponent5"));
add
. Verdenshjørnerne angives med
"North"
, "East"
, "South"
,
"West"
, "Center"
.
Eksempel
BorderEks.java:
setLayout(new BorderLayout()); add("South", new Button("komponent1")); add("North", new Button("komponent2")); add("East", new Button("komponent3")); add("Center", new Button("komponent4")); add("West", new Button("komponent5"));
reshape(x, y,
width, height)
, hvor (x, y) er koordinaterne for komponentens
øverste venstre hjørne, width er komponentens bredde, og height dens
højde. Alle angivelser er i pixels. Dette giver fuld kontrol over
layoutet, men resultatet er dårligt hvis f.eks. koordinaterne falder
uden for det område der er afsat til appletten. Eksempel
NoLayoutEks.java:
komp1 = new Button("komponent1"); komp2 = new Button("komponent2"); komp3 = new Button("komponent3"); komp4 = new Button("komponent4"); komp5 = new Button("komponent5"); setLayout(null); add(komp1); komp1.reshape(0, 15, 100, 30); add(komp2); komp2.reshape(200, 15, 100, 30); add(komp3); komp3.reshape(0, 200, 100, 30); add(komp4); komp4.reshape(200, 200, 100, 30); add(komp5); komp5.reshape(300, 150, 100, 30);
Et Java-program adskiller sig fra en applet ved ikke at køre i et
allerede eksisterende vindue. Vi skal ikke betragte egentlige
Java-programmer i kurset Databehandling. Et Java-program med navnet
Klasse skal findes i en fil Klasse.java, og skal indeholde en metode
kaldet main
, erklæret på denne måde:
public class Klasse { public static void main ( String[] args ) { ... } ... }
Metoden main
kaldes når programmet startes.
Parameteren args
er en tabel (array) af de strenge som
programmet fik som argumenter da det blev startet.
19. Indlæsning fra fil eller tastatur
Hvis man vil læse fra en tekstfil "tal.dat" på disken (kun muligt i et egentligt Java-program), så gør man som ved læsning af flere tal fra en tegnstreng. Blot skal man erstatte linie 1 og 2 i opskriften med følgende:
InputStream istroem = new FileInputStream("tal.dat");
Dette siger at indstrømmen istream
skal tages fra
filen "C:\Brugere\tal.dat" på disken. I dette tilfælde skal man
angive throws IOException, FileNotFoundException
i den
omgivende metode. Bemærk at skråstreger i et filnavn såsom
C:\Brugere\tal.dat (under MS Windows) skal fordobles når de skrives i
Java-tegnstrenge: "C:\\Brugere\\tal.dat".
Hvis man vil læse direkte fra tastaturet (i et egentligt Java-program), så skal man i stedet erstatte linie 1 og 2 i opskriften med følgende:
InputStream istroem = System.in;
Dette siger at indstrømmen istream
skal tages fra
System.in
, også kaldet standard input, som normalt er
tastaturet.