Java Swing

Fra Wikibooks, den frie samling af lærebøger
(Omdirigeret fra Programmering:JavaSwing)

Introduktion[redigér]

Denne bog handler om udviklingen af grafiske applikationer i Java, ved hjælp af Swing biblioteket. Bogen er tiltænkt nybegynder, men skal også virke som et opslagsværk med eksempler. Forudsat er dog, at de grundlæggende begreber indenfor programmering er kendte.

Alt hjælp til færdiggørelsen af denne bog værdsættes.

CBirn 12. jun 2006 kl. 14:08 (UTC)

Swing[redigér]

Swing biblioteket er del af Javas Foundation Classes (JFC). Da java blev lanceret var Swing ikke skrevet, derimod stod biblioteket AWT (Abstract Window Toolkit) til rådighed. Først med J2SE rel. 1.2 blev Swing en fast del af java. Med begge biblioteker er det muligt, at fremstille grafiske overflader. Man kan sige at Swing er en art overbygning til AWT.

De mest fundamentale forskelle mellem bibliotekerne er:

  • AWT
Heavyweigt 
Komponenterne benytter sig af Systemafhængige funktioner. Dette fører f.eks. til at et vindue i ser 
forskelligt du i Linux og Windows.
Komponenter
Der er her tale om komponenter som forholder sig forskelligt på forskellige systemer. Udbuddet er heller ikke så stor i forhold til Swing.
  • Swing
Lightweight 
Komponenterne forholder sig ens på forskellige styresystemer. Det er muligt at skabe en Interaktion på   
tværs af komponenterne.
Komponenter
Der står et stort antal komponenter til rådighed, som gør det muligt at fremstille moderne grafiske   
overflader.

Grundlæggende[redigér]

Vil starte med et grundlæggende eksempel, nemlig et vindue, med teksten "Vi programmerer Swing"

Hvis følgende programkode 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.

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();     
   }   
}

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);

havde vi udeladt denne linje, så var vinduet blevet skjult i stedet for at forsvinde.

Vores vindue vises ved hjælp af følgende metode kald.

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 vinduet dvs. vores Frame

frame.getContentPane().add(label);

Det er vigtigt at benytte: getContentPane() Det er sådan at JFrame er baseret på Frame klassen (java.awt.frame) og de er ikke fuldt ud kompatible.

Referencer[redigér]

Sun Java JFC/Swing tutorial