swing
Layouthantering
Sök…
Gränslayout
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);
Gränslayout är en av de enklaste layouthanterarna. Sättet att använda en layouthanterare är att ställa in manager för en JPanel
.
Border Layout slots följer följande regler:
- North & South: önskad höjd
- East & West: föredragen bredd
- Mitt: maximalt återstående utrymme
I BorderLayout
slots också vara tomma. Layouthanteraren kompenserar automatiskt alla tomma utrymmen och ändrar storleken vid behov.
Så här ser exemplet ut:
Flödeslayout
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 är den enklaste layouthanteraren som Swing har att erbjuda. Flödeslayout försöker sätta allt på en rad, och om layouten översvämmer bredden kommer den att radas in. Beställningen specificeras av den ordning du lägger till komponenter till din panel.
Skärmdumpar:
Rutnätslayout
Med GridLayout
kan du ordna komponenter i form av ett rutnät.
Du skickar antalet rader och kolumner du vill att rutnätet ska ha till GridLayout
konstruktör, till exempel kommer new GridLayout(3, 2)
att skapa en GridLayout
med 3 rader och 2 kolumner.
När du lägger till komponenter i en behållare med GridLayout
komponenterna rad för rad, från vänster till höger:
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);
}
}
Detta skapar och visar en JFrame
som ser ut:
En mer detaljerad beskrivning finns: GridLayout