Layout per swing

Da Head First Java O'Reilly, capitolo 13.

Una utile divisione empirica tra le componenti swing in Java é quella tra componenti interattive (JButton, JCheckBox, JTextField, ...) e componenti di background (JFrame e JPanel).

Tipicamente le seconde stanno sullo sfondo e le prime sono messe sopra a queste.

Il layout manager é il processo che decide come le componenti vengono piazzate dentro un background.

I tre layout manager più comuni:
  • BorderLayout: divide il background in cinque regioni, é possibile aggiungere una sola componente in ognuna di queste regioni; é il default per una frame.
  • FlowLayout: agisce come un word processor con il "word wrap" attivo. Ovvero le componenti vengono messe una a fianco all'altra finché ci stanno su una "riga". E poi si va "a capo"; é il default per un pannello.
  • BoxLayout: simile al FlowLayout, ma normalmente opera verticalmente ed é possibile forzare l'inizio di una "nuova riga".
Questa piccola applicazione mostra come funziona il BorderLayout. I bottoni sui bordi prendono lo spazio necessario per mostrare la propria etichetta, e tendono a coprire tutto il bordo di loro competenza. Il bottone al centro occupa tutto lo spazio che resta disponibile:

import java.awt.BorderLayout;
import javax.swing.*;

public class Border {
public Border() {
JFrame f = new JFrame();

f.getContentPane().add(BorderLayout.CENTER, new JButton("Center"));
f.getContentPane().add(BorderLayout.EAST, new JButton("East"));
f.getContentPane().add(BorderLayout.NORTH, new JButton("North"));
f.getContentPane().add(BorderLayout.WEST, new JButton("West"));
f.getContentPane().add(BorderLayout.SOUTH, new JButton("South"));

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(300, 300);
f.setVisible(true);
}

public static void main(String[] args) {
new Border();
}
}

Nessun commento:

Posta un commento