JavaGrundernaLayout
[ Hem ] Allmänt ASP XML SQL ADO HTML CSS VB Java Design Karta
Grunderna Exempel

Layout

Programmet i föregående kapitel hade egentligen ingen layout utan vi "kastade in" komponenterna vartefter. För att få en mer systematisk layout kan man använda en layoutmanager...

Tillägg i koden markeras med fetstil. Borttagningar visas som överstruken text.

Utgångsprogrammet

import java.awt.*;
import java.applet.*;


public class Applet1 extends Applet
{
  Label label1 = new Label("text för labeln");
  Button button1 = new Button("text för knappen");
  TextArea area1 = new TextArea("text", 10,30);
  public void init()
  {
     this.add(label1);
     this.add(button1);
     this.add(area1);
  }
}

Resultat:

GridLayout

import java.awt.*;
import java.applet.*;


public class Applet1 extends Applet
{
  Label label1 = new Label("text för labeln");
  Button button1 = new Button("text för knappen");
  TextArea area1 = new TextArea("text", 10,30);
  public void init()
  {
     GridLayout grid1 = new GridLayout(2,2);
     this.setLayout(grid1);
     this.add(label1);
     this.add(button1);
     this.add(area1);
  }
}

Resultat:

BorderLayout

import java.awt.*;
import java.applet.*;


public class Applet1 extends Applet
{
  Label label1 = new Label("text för labeln");
  Button button1 = new Button("text för knappen");
  TextArea area1 = new TextArea("text", 10,30);
  public void init()
  {
     BorderLayout border1 = new BorderLayout();
     GridLayout grid1 = new GridLayout(2,2);
     this.setLayout(border1);
     this.add("South", label1);
     this.add("North", button1);
     this.add("Center", area1);
  }
}

Resultat:

BorderLayoutens areor:

BorderLayout + Panel

Ett problem med BorderLayout är att man bara kan placera en sak i varje area. Om jag försöker sätta två knappar på samma ställe, t.ex North, kommer den ena inte att synas. Lösningen är att bara placera in en "sak" men låta den innehålla fler "saker" i sin tur. För detta ändamål finns Panel

import java.awt.*;
import java.applet.*;


public class Applet1 extends Applet
{
  Label label1 = new Label("text för labeln");
  Button button1 = new Button("text för knappen");
  Button button2 = new Button("En till knapp");
  TextArea area1 = new TextArea("text", 10,30);
  public void init()
  {
     BorderLayout grid1 = new BorderLayout();
     this.setLayout(border1);
     // FlowLayout är egentligen standard
     // men genom att skapa en separat kan vi
     // enklast justera dess funktion
     FlowLayout flow1 = new FlowLayout();
     flow1.setAlignment(FlowLayout.LEFT);
      // Skapa en panel, dit vi sätter in knapparna
      // panelen skall ha flowlayouten vi nyss skapade
     Panel panel = new Panel( flow1 );
     panel.add(button1);
     panel.add(button2);
     this.add("South", label1);
     // sätter in panelen i appleten istället
     this.add("North", panel);
     this.add("Center", area1);
  }
}

Resultat:

  HändelserExempel
Grunderna
Första programmet
Utgångspunkten
Introduktion av awt
Händelser
Layout


Top
< Händelser Exempel>
© Anders Enges, Vörå 2002  | 31.01.01 16:27 Visa asp koden