2010-03-19 3 views

Répondre

2

Cela dépend entièrement de savoir si le gestionnaire de disposition conserve les données liées à la mise en page. En règle générale, tout gestionnaire de disposition qui prend des contraintes doit les stocker, de sorte qu'il doit être instancié de façon individuelle avec le conteneur.

En ce qui concerne particulièrement MigLayout, regardez la quantité de données qu'il stocke qui ne seraient pas applicables à plusieurs conteneurs:

public final class MigLayout implements LayoutManager2, Externalizable 
{ 
    // ******** Instance part ******** 

    /** The component to string constraints mappings. 
    */ 
    private final Map<Component, Object> scrConstrMap = new IdentityHashMap<Component, Object>(8); 

    /** Hold the serializable text representation of the constraints. 
    */ 
    private Object layoutConstraints = "", colConstraints = "", rowConstraints = ""; // Should never be null! 

    // ******** Transient part ******** 

    private transient ContainerWrapper cacheParentW = null; 

    private transient final Map<ComponentWrapper, CC> ccMap = new HashMap<ComponentWrapper, CC>(8); 
    private transient javax.swing.Timer debugTimer = null; 

    private transient LC lc = null; 
    private transient AC colSpecs = null, rowSpecs = null; 
    private transient Grid grid = null; 
    private transient int lastModCount = PlatformDefaults.getModCount(); 
    private transient int lastHash = -1; 
    private transient Dimension lastInvalidSize = null; 

    private transient ArrayList<LayoutCallback> callbackList = null; 

    private transient boolean dirty = true; 
0

Certains gestionnaires de mise en page ne fonctionne qu'avec un Container (comme BoxLayout). Ma conjecture est qu'il y a peu de bénéfice gagné en essayant de réutiliser le même gestionnaire de disposition.

Questions connexes