SpringLayout | Java Swing
SpringLayout organise les éléments de son conteneur associé selon un ensemble de contraintes. Les contraintes ne sont rien d’autre qu’une distance horizontale et verticale entre deux composant. Toutes les contraintes sont représentées par un objet SpringLayout.Constraint.
Chaque élément d’un conteneur SpringLayout, ainsi que le conteneur lui-même, ont exactement un ensemble de contraintes qui leur est associé.
Chaque position de bord dépend de la position de l’autre bord. Si une contrainte est ajoutée pour créer un nouveau bord, la liaison précédente est supprimée. SpringLayout ne définit pas automatiquement l’emplacement des composants qu’il gère.
Constructeur de la classe SpringLayout :
- SpringLayout(): utilisé pour construire une nouvelle classe SpringLayout.
Les méthodes couramment utilisée de SpringLayout sont les suivantes:
- addLayoutComponent(Component c, Object obj): Si les contraintes sont une instance de SpringLayout.Constraints, associe les contraintes au composant spécifié.
- getLayoutAlignmentX(Container c): utilisé pour renvoyer 0,5f (centré).
- getLayoutAlignmentY(Container c): utilisé pour retourner 0,5f (centré).
- getConstraint((String str, Component c): renvoie le ressort contrôlant la distance entre le bord spécifié du composant et le bord supérieur ou gauche de son parent.
- getConstraint(Component c): renvoie les contraintes du composant spécifié.
- layoutContainer(Container parent): utilisé pour disposer le conteneur spécifié.
Exemple:
import java.awt.*; import javax.swing.*; public class Main { public static void main(String args[]) { JFrame f = new JFrame("Exemple de SpringLayout"); Container content = f.getContentPane(); SpringLayout layout = new SpringLayout(); content.setLayout(layout); Component lab = new JLabel("Label :"); Component text = new JTextField(15); content.add(lab); content.add(text); layout.putConstraint(SpringLayout.WEST, lab, 20, SpringLayout.WEST, content); layout.putConstraint(SpringLayout.NORTH, lab, 20, SpringLayout.NORTH, content); layout.putConstraint(SpringLayout.NORTH, text, 20, SpringLayout.NORTH, content); layout.putConstraint(SpringLayout.WEST, text, 20, SpringLayout.EAST, lab); f.setSize(300, 100); f.setVisible(true); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
Sortie: