4
Tags:
java
Skrevet af
Bruger #2730
@ 23.02.2003
Overblik
Denne tutorial forklarer kort de forskellige måder at lave layouts på. Alle eksemplerne er lavet i applets. Dette betyuder dog ikke at de ikke kan bruges i applikationer, principperne er nøjagtig de samme.
BorderLayout
Denne type layout virker lidt som et kort. Forestil dig en frame, der er delt op i 5 felter: Nord, syd, øst, vest og center. Man kan nu placere elementer i hver af disse placeringer. Det skal dog bemærkes at hvor der ikke placeres knapper, kommer der ikke bare en tom firkant af vinduet til syne. En af de andre knapper vil simpelthen overskygge denne firkant. Dette betyder reelt, at vil man placere en knap i syd, fordi man vil have en form for status bar, vil denne knap fylde hele framen, da der ikke er andre knapper på. Følgende kode viser hvordan dette fungerer.
import java.awt.*;
import java.applet.Applet;
public class buttonDir extends Applet {
public void init() {
setLayout(new BorderLayout());
add(new Button("North"), BorderLayout.NORTH);
add(new Button("South"), BorderLayout.SOUTH);
add(new Button("East"), BorderLayout.EAST);
add(new Button("West"), BorderLayout.WEST);
add(new Button("Center"), BorderLayout.CENTER);
}
}
CardLayout
Dette er det layout der er default på en frame, hvis der ikke er angivet andet. Det virker således at vinduet opfattes som en bunke kort, hvor det kun er et kort synligt ad gangen. Det vil sige at der kun er en knap synlig ad gangen.
FlowLayout
Dette layout placerer alle knapper i en linie, når der tilføjes nye knapper bliver disse tilføjet i slutningen af linien. Denne linie centreres på tværs af framen. Nedenstående eksempel illustrerer dette
import java.awt.*;
import java.applet.Applet;
public class myButtons extends Applet {
Button button1, button2, button3;
public void init() {
button1 = new Button("Ok");
button2 = new Button("Open");
button3 = new Button("Close");
add(button1);
add(button2);
add(button3);
}
}
GridBagLayout
Denne måde at lave layout på er lidt tricky at bruge. Jeg vil derfor ikke gennemgå den her, da jeg mener den kan være mere forvirrende end gavnlig for begynderen.
GridLayout
Dette Layout er nok det mest anvendte, da det giver udvikleren mulighed for at opstille sine knapper med mere i en form for tabeller. Der skal lægges mærke til at der i linien
setLayout(new GridLayout(3,2));
angives først hvor mange rækker der skal laves, derefter hvor mange kolonner der skal laves. Nedenstående kode illustrerer dette.
import java.awt.*;
import java.applet.Applet;
public class ButtonGrid extends Applet {
public void init() {
setLayout(new GridLayout(3,2));
add(new Button("1"));
add(new Button("2"));
add(new Button("3"));
add(new Button("4"));
add(new Button("5"));
add(new Button("6"));
}
}
Afslutningsvis
Der findes også et absoluteLayout, hvor man kan angive på hvilke koordinater et element skal starte. Denne type layout er afhængig af, at man bruger SUN ONE, da dette type layout er en del at dette værktøj. Man er ved denne type layout komplet fri for at tage stilling til hvor man vil placere elementet, man angiver det blot med X/Y koordinater.
Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.
Del også gerne artiklen med dine Facebook venner:
Kommentarer (5)
Artiklen starter ud fra en ret godt grundlag, da layouts i Java nok er det der driller nybegyndere mest. Desværre synes jeg ikke artiklen følger godt nok op på emnet. Eksemplerne er for små og hvert enkelt layout bliver simpelthen ikke beskrevet godt nok.
Den var da fair. Lige hurtigt beskriver hvordan et layout bliver smidt sammen med etc. Kunne måske have smidt et enkelt eksempel i bunden om hvordan man bruger samme layout på en java-applikation. En bonus kunne være at opstille de mest brugte layout-managers, så kan folk selv gennemgå det i java dokumentationen.
-AH
"En bonus kunne være at opstille de mest brugte layout-managers, så kan folk selv gennemgå det i java dokumentationen". Bare glem den kommentar.
Kan man også godt importere en class-fil ?
border layout blev forklaret meget flot, men resten af artiklen beskriver ikke ordentligt hvordan resultatet vil komme til at se ud.
Du skal være
logget ind for at skrive en kommentar.