3.9.1. Mig Layout (nativ)

Mig Layout ist ein freier, von Mikael Grev, Inhaber der Firma MiG InfoCom AB, entwickelter Layout Manager (http://www.miglayout.com/), der unter BSD Lizenz steht. Es existieren Implementierungen für Swing, Swt und Java FX 2. Der Layout Manager hat einen sehr flexiblen Grid basierten Layout Ansatz und eignet sich für sehr viele Anwendungsfälle. Insbesondere ist damit die Erstellung von formularbasierten Masken sehr intuitiv und einfach umzusetzen.

Um Mig Layout mit jowidgets zu verwenden, wird empfohlen, vorab den Mig Layout Quick Start Guide zu studieren.

Die Klasse org.jowidgets.common.widgets.layout.MigLayoutDescriptor bietet die Möglichkeit, die LayoutConstraints, RowConstraints und ColumnConstraints für das Layout festzulegen. Die Constraints haben die gleiche Bedeutung wie in den Klassen net.miginfocom.swt.MigLayout oder net.miginfocom.swing.MigLayout.

Im folgenden Beispiel wird ein MigLayout definiert.

  1      container.setLayout(new MigLayoutDescriptor("wrap", "[][grow, 0::]", "[][]"));

Das Layout hat zwei Spalten und zwei Zeilen, wobei die zweite Spalte wächst und eine MinSize von 0 hat. Die LayoutConstraints="wrap" bedeuten, dass automatisch eine neue Zeile begonnen wird, wenn die aktuelle Zeile voll ist (in diesem Fall also nach zwei Controls).

Die Cell Constraints werden im folgenden Beispiel beim Hinzufügen der Controls zum Container gesetzt:

  1      final String textFieldCC = "growx, w 0::";
  2  
  3      //row 0, column 0
  4      container.add(BPF.textLabel("Field 1"));
  5  
  6      //row 0, column 1
  7      container.add(BPF.textField(), textFieldCC);
  8  
  9      //row 1 (autowrap has wraped to row 1), column 0 
 10      container.add(BPF.textLabel("Field 2"));
 11  
 12      //row 1, column 1
 13      container.add(BPF.textField(), textFieldCC);

Die Textfelder wachsen horizontal und haben eine MinSize von 0.

Die folgende Abbildung zeigt das Ergebnis:

Abbildung 9. Mig Layout Beispiel

Mig Layout Beispiel

Hinweise:


Siehe auch PDF Version dieses Dokuments, Jowidgets API Spezifikation