java - 我可以在 swing 中使用单个布局管理器实例吗?

标签 java swing miglayout

我正在使用 MiGLayout,并且我是一个怪胎,我在想是否可以创建布局的单个实例并将其用于我的所有面板?只是好奇...

最佳答案

这完全取决于布局管理器是否保留与布局相关的数据。一般来说,任何接受约束的布局管理器都需要存储这些约束,因此它必须与容器一对一地实例化。

特别引用 MigLayout,看看它存储了多少不适用于多个容器的数据:

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;

关于java - 我可以在 swing 中使用单个布局管理器实例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2479252/

相关文章:

java - Java获取视频高宽

java - JavaFX 中的按钮对齐

java - 如何使用 JCheckBox 启用/禁用 JTextField?或者我的代码有什么问题?

java - 使用 MiGlayout 的开源 Swing GUI 生成器

Java MigLayout 垂直对齐

java - 没有封闭的类型实例是可访问的。

java - Swing 大文件性能

java - 重新绘制具有不同渐变的 Swing 按钮

java - MigLayout 奇怪的对齐顶部行为

java - Spring DSL 处理流程后?