swing
Layout beheer
Zoeken…
Randindeling
import static java.awt.BorderLayout.*;
import javax.swing.*;
import java.awt.BorderLayout;
JPanel root = new JPanel(new BorderLayout());
root.add(new JButton("East"), EAST);
root.add(new JButton("West"), WEST);
root.add(new JButton("North"), NORTH);
root.add(new JButton("South"), SOUTH);
root.add(new JButton("Center"), CENTER);
JFrame frame = new JFrame();
frame.setContentPane(root);
frame.pack();
frame.setVisible(true);
Border layout is een van de eenvoudigste layoutmanagers. De manier om een layoutmanager te gebruiken is om de manager van een JPanel
.
Randindeling slots volgen de volgende regels:
- Noord en Zuid: gewenste hoogte
- Oost & West: gewenste breedte
- Midden: maximale resterende ruimte
In BorderLayout
slots ook leeg zijn. De lay-outmanager compenseert automatisch voor lege ruimtes en past het formaat aan indien nodig.
Dit is hoe dit voorbeeld eruit ziet:
Stroomindeling
import javax.swing.*;
import java.awt.FlowLayout;
public class FlowExample {
public static void main(String[] args){
SwingUtilities.invokeLater(new Runnable(){
@Override
public void run(){
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
panel.add(new JButton("One"));
panel.add(new JButton("Two"));
panel.add(new JButton("Three"));
panel.add(new JButton("Four"));
panel.add(new JButton("Five"));
JFrame frame = new JFrame();
frame.setContentPane(Panel);
frame.pack();
frame.setVisible(true);
}
});
}
}
Flow layout is de eenvoudigste layoutmanager die Swing te bieden heeft. Flow layout probeert alles op één regel te plaatsen en als de layout de breedte overschrijdt, wordt de lijn omwikkeld. De volgorde wordt bepaald door de volgorde waarin u componenten aan uw paneel toevoegt.
screenshots:
Raster lay-out
Met de GridLayout
kunt u componenten in de vorm van een raster rangschikken.
U geeft het aantal rijen en kolommen dat u het raster wilt hebben door aan de GridLayout
van de GridLayout
. Zo maakt bijvoorbeeld new GridLayout(3, 2)
een GridLayout
met 3 rijen en 2 kolommen.
Bij het toevoegen van componenten aan een container met de GridLayout
, worden de componenten rij voor rij, van links naar rechts toegevoegd:
import javax.swing.*;
import java.awt.GridLayout;
public class Example {
public static void main(String[] args){
SwingUtilities.invokeLater(Example::createAndShowJFrame);
}
private static void createAndShowJFrame(){
JFrame jFrame = new JFrame("Grid Layout Example");
// Create layout and add buttons to show restraints
JPanel jPanel = new JPanel(new GridLayout(2, 2));
jPanel.add(new JButton("x=0, y=0"));
jPanel.add(new JButton("x=1, y=0"));
jPanel.add(new JButton("x=0, y=1"));
jPanel.add(new JButton("x=1, y-1"));
jFrame.setContentPane(jPanel);
jFrame.pack();
jFrame.setLocationRelativeTo(null);
jFrame.setVisible(true);
}
}
Dit creëert en toont een JFrame
dat eruit ziet als:
Een meer gedetailleerde beschrijving is beschikbaar: GridLayout