swing
Zarządzanie układem
Szukaj…
Układ granicy
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);
Układ granicy jest jednym z najprostszych menedżerów układu. Sposobem korzystania z menedżera układu jest ustawienie menedżera JPanel
.
Automaty do układów obramowania podlegają następującym zasadom:
- Północ i południe: preferowana wysokość
- Wschód i zachód: preferowana szerokość
- Centrum: maksymalna pozostała przestrzeń
W BorderLayout
sloty mogą być również puste. Menedżer układu automatycznie zrekompensuje wszelkie puste miejsca, zmieniając rozmiar w razie potrzeby.
Oto jak wygląda ten przykład:
Układ przepływu
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);
}
});
}
}
Układ przepływu jest najprostszym menedżerem układu, który Swing ma do zaoferowania. Układ przepływu próbuje umieścić wszystko w jednym wierszu, a jeśli układ przekroczy szerokość, zawinie linię. Kolejność jest określona przez kolejność dodawania komponentów do panelu.
Zrzuty ekranu:
Układ siatki
GridLayout
pozwala układać komponenty w postaci siatki.
Liczbę wierszy i kolumn GridLayout
do konstruktora GridLayout
, na przykład new GridLayout(3, 2)
utworzy GridLayout
z 3 wierszami i 2 kolumnami.
Podczas dodawania komponentów do kontenera za pomocą GridLayout
, komponenty będą dodawane rząd po rzędzie, od lewej do prawej:
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);
}
}
Spowoduje to utworzenie i wyświetlenie JFrame
która wygląda następująco:
Dostępny jest bardziej szczegółowy opis: GridLayout