text: Forord.
  Det mest af denne bog er også taget fra http://javabog.dk, med tilladelse.
  I denne bog kan du lære tre ting:
  Java.
  Java kan downloades fra http://www.java.com, herfra er der et link til at download den nyeste version af Java hvis du ikke skulle have dette.
  Javaudviklingsværktøjer.
  Der findes mange programmer, som kan bruges til udviklingen af Java-programmer.
  Følgende programmer er licensfri, dvs. at den fulde funktionalitet står til rådighed:
  Følgende programmer koster til dels penge, men der findes også licenser der giver adgang til en begrænset del af funktionaliteterne:
  Grundlæggende programmering.
  Lad os se på et simpelt javaprogram, der skriver "Hej verden" og et citat af Storm P. ud til skærmen. Neden under den vandrette linje er vist, hvad der sker, hvis programmet køres:
   // Et simpelt program, der skriver "Hej verden" 
   // og et citat af Storm P. ud til skærmen
   // Denne fil skal have navnet: HejVerden.java
   public class HejVerden
   public static void main (String[] arg)
   System.out.println("Hej Verden!");
   System.out.println("Hvornår smager en Tuborg bedst?");
   System.out.println("Hver gang!");
  Resultat på skærm, når det lille program køres.:
   Hej Verden!
   Hvornår smager en Tuborg bedst?
   Hver gang!
  Kommentar.
  Kommentarer er dokumentation beregnet på, at gøre programmets kildetekst lettere at forstå for læseren. De påvirker ikke programudførelsen. 
  De første 3 linjer, der starter med "//", er kommentarer:
  I dette tilfælde beskriver kommentarerne, hvad programmet gør og hvilket filnavn kildeteksten bør gemmes i.
  Kommentarer bliver sprunget over af fortolkeren og har ingen indflydelse på, hvad programmet gør.
  Kommentarer bør skrives, så de giver læseren forståelse for, hvordan programmet virker - uden at være tvetydige eller forklare indlysende ting. 
  "//" markerer, at resten af linjen er en kommentar. Den kan også bruges efter en kommando til at forklare, hvad der sker, f.eks.
  Java har også en anden form for kommentarer, som kan være nyttig til kommentarer over flere linjer: Man kan starte en kommentar med /* og afslutte den med */. Al tekst mellem /* og */ bliver så opfattet som kommentarer. Vi kunne altså også skrive:
  og
  Strukturdelen.
  Strukturdelen vil ikke blive ændret i de næste to kapitler, og det er ikke så vigtigt, at du forstår, hvad der foregår i første omgang. 
  Al javakode er indkapslet i en klasse mellem { og } (blokstart og blokslut-parenteser). Beskrivelsen af en klasse er altid indkapslet i en blok bestående af:
   public class HejVerden
   ...
  Inde i klassen står der en main-metode med nogle kommandoer i. 
   public static void main (String[] arg)
   ...
  Indholdet af metoden er altid indkapslet i en blok med { og }.
  Programudførelsen starter i metoden:
  Programkode.
  I main-metoden giver man instruktioner til computeren:
   System.out.println("Hej verden!");
   System.out.println("Hvornår smager en Tuborg bedst?");
   System.out.println("Hvergang!");
  Instruktionerne udføres altid en efter en, ovenfra og ned. Hver instruktion afsluttes med et semikolon.
  Disse 3 instruktioner skriver 3 strenge ("Hej verden!", ...) ud til skærmen. En streng er en tekst, som computeren kan arbejde med. Strenge er altid indkapslet i "".
  Hver instruktion består af et kald til metoden System.out.println, som betyder, at der skal udskrives noget til skærmen og en streng som parameter. 
  En parameter er en oplysning, som man overfører til metoden. I dette tilfælde hvilken tekst, der skal skrives ud til skærmen.
  Vores main-metode kalder altså andre metoder.
  Variabler.
  Variabler bruges til at opbevare og ændre data. En variabel kan opfattes som en navngiven papirlap, hvor der til enhver tid kan stå netop én ting.
  Variabler skal altid erklæres, dvs. at man skal fortælle computeren, at der skal oprettes en variabel, hvad slags data den skal indeholde og hvad den skal hedde. 
  En variabel er et navn på et sted i computerens hukommelse, beregnet på at indeholde data af en bestemt type
  En variabel erklæres ved at skrive datatype variabelnavn;
  Det er en god vane, at give variablerne sigende navne. Navnene bør starte med et lille bogstav.
  Datatyper.
  I Java findes der følgende grundlæggende datatyper, man kalder dem også for de primitive datatyper:
  De primitive datatyper er konstante på alle platforme.
  Løkker.
  En løkke er en gentaget udførelse af en kommando igen og igen. Hvor mange gange løkken udføres, afhænger af et logisk udtryk.
  While.
  while-løkken har formen: 
  Kommandoen udføres igen og igen, så længe betingelsen er opfyldt. Dvs. før kommandoen udføres, undersøges betingelsen og det kontrolleres, at den er opfyldt (se rutediagrammet til højre).
  Oftest vil man udføre mere en én kommando og anvender derfor en blok til at samle kommandoerne:
  Her er et eksempel:
   public class Alder4
   public static void main(String[] arg) 
   int alder;
   alder = 15;
   while (alder &lt; 18)
   System.out.println("Du er "+alder+" år. Vent til du bliver ældre.");
   alder = alder + 1;
   System.out.println("Tillykke med fødselsdagen!");
   
   System.out.println("Nu er du "+alder+" år og myndig.");
  For.
  for-løkken er specielt velegnet til løkker med en tællevariabel. Den har formen
  Det kan indenad læses som "for startværdi, så længe betingelse udfør: kommando og opdatering, f.eks. "for alder = 15, så længe alder &lt; 18 udfør: Skriv "du er.." og tæl alder 1 op".
  En for-løkke og en while-løkke supplerer hinanden. De har præcis samme funktion, men for-løkken er mere kompakt og bekvem, når man ønsker at lave en almindelig løkke, der udføres et bestemt antal gange. Dette program gør det samme som Syvtabel-eksemplet, men med en for-løkke: 
   public class Syvtabel2
   public static void main(String[] arg) 
   int n;
   for (n=1; n&lt;=10; n=n+1)
   System.out.println(n+" : "+ 7*n);
  Med java 5 er der kommet en ny For løkke type: 
  for(Variabel: liste)
   public class foreachtest {
   public static void main(String[] arg) 
   int[] i = {1,2,3,4};
   for (int val: i)
   System.out.println(" V" + val);
   Resultat
   V1 V2 V3 V4
  Det er det nogen kalder for en foreach løkke
  Uendelige løkker.
  Hvis programmøren ikke er omhyggelig, kan han komme til at lave en løkke, hvor betingelsen vedbliver at være sand. Så bliver programudførelsen i løkken i al evighed (eller indtil brugeren afbryder programmet). 
  Lad os f.eks. sige, at programmøren er kommet til at skrive '-' i stedet for '+' i opdateringen af n i for-løkken fra Syvtabel-programmet. Nu vil computeren tælle nedad:
   public class SyvtabelFejl
   public static void main(String[] arg) 
   for (int n=1; n&lt;=10; n=n-1)
   System.out.println(n+" : "+ 7*n);
  Udvikling af Applikationer med grafisk brugergrænseflade.
  Til udviklingen af applikationer med en grafisk brugergrænseflade findes der indenfor java forskellige muligheder.
  Et bibliotek med klasser, der gør det muligt at skabe simple brugergrænseflader. De første programmer/appletter benyttede 
  udelukkende dette bibliotek. 
  Et bibliotek af java klasser, hvor det er muligt at skabe mere avancerede brugergrænseflader. Man kan sige at Swing er en overbygning til AWT.
  I dette kapitel vil der blive beskrevet, hvordan man ved hjælp af Swing biblioteket udvikler en grafisk brugergrænseflade.
  Der vil blive beskrevet forskellige temaer med stigende sværhedsgrad.
  Vis et vindue.
  Det mest fundamentale ved et grafisk Java program er et vindue. Vi vil starte med et simpelt eksempel på, hvordan 
  man laver et vindue. I vinduet skal der stå: "Vi programmerer Swing" 
   package simplegui1;
   import javax.swing.JFrame;
   import javax.swing.JLabel;
   public class SimpleGui1 {
   //Variabel som definerer et vindue.
   private JFrame frame = new JFrame("Simple GUI");
   /** Metode der opretter en instans af SimpleGui1 */
   public SimpleGui1() {
   //Her definerer vi vores tekst
   JLabel label = new JLabel("Vi programmerer Swing");
   //Her tilføjes teksten til vinduet
   frame.getContentPane().add(label);
   //Her bestemmes der hvad der sker når man lukker vinduet.
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   //Her startes vinduet 
   frame.setVisible(true);
   
   //Start metode
   public static void main(String[] args) {
   SimpleGui1 simplegui = new SimpleGui1(); 
  Hvis ovenstående kopieres ind i en fil kaldet "SimpleGui1.java", kompileres og startes, så skulle der gerne vises 
  et vindue uden menu, men med standard lukke- og maksimere/minimere-knapper.
  JFrame klassen benyttes til at lave vinduer med.
   JFrame frame = new JFrame("Simple GUI");
  Ved definitionen af et vindue, er det vigtigt at fortælle, hvad der sker når
  vinduet lukkes. 
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  Denne linje sørger for, at applikationen afsluttes, når der trykkes på vinduets luk-knap. Havde vi udeladt denne linje, ville vinduet blot være blevet skjult, og programmet ville fortsætte kørslen i baggrunden.
  Vores vindue vises ved hjælp af følgende metodekald.
   frame.setVisible(true);
  Til teksten i vores eksempel benytter vi os af JLabel-klassen. En JLabel er en kort tekst eller ikon.
   JLabel label = new JLabel("Vi programmerer Swing"); 
  Vores JLabel tilføjes til vinduet, dvs. vores JFrame
   frame.getContentPane().add(label);
  Det er vigtigt at benytte funktionen getContentPane(), da det er sådan at JFrame er baseret på Frame-klassen (java.awt.frame) og at de er ikke fuldt kompatible.
  Swing komponenter.
  Der findes mange forskellige komponenter i Swing. I dette kapitel vil de vigtigste blive beskrevet.
  Udlægning af komponenter.
  Til placeringen af komponenter i vinduer, dialoger og paneler benyttes en såkaldt Layoutmanager. &lt;br&gt;
  Der findes forskellige layout manager, de fleste er er blevet implementeret i AWT biblioteket.
  Udvikling af Java Web baserede anvendelser.
  Dette kapitel skal fortælle lidt om de forskellige java web teknologier.
  Applets.
  En applet er et lille Javaprogram, som udføres lokalt på brugerens computer.