Java 使用MigLayout帮助解决有问题的布局

Java 使用MigLayout帮助解决有问题的布局,java,layout,grid,alignment,miglayout,Java,Layout,Grid,Alignment,Miglayout,我一直试图以某种方式对齐java项目中的一些对象,但没有成功。我正在使用MigLayout进行布局,这是我希望它的外观: 侧边栏应具有静态宽度(220px),并停靠在左侧 右栏应具有流体宽度,并根据窗口大小展开 页脚应固定在底部,并具有静态高度和流体宽度 这是我现在得到的代码: this.setLayout(new MigLayout("fill, wrap 2", "[30%][70%]", "grow")); this.add(sourceList, "w 30%"); this.add

我一直试图以某种方式对齐java项目中的一些对象,但没有成功。我正在使用MigLayout进行布局,这是我希望它的外观:

  • 侧边栏应具有静态宽度(220px),并停靠在左侧
  • 右栏应具有流体宽度,并根据窗口大小展开
  • 页脚应固定在底部,并具有静态高度和流体宽度
  • 这是我现在得到的代码:

    this.setLayout(new MigLayout("fill, wrap 2", "[30%][70%]", "grow"));
    
    this.add(sourceList, "w 30%");
    this.add(listView, "w 70%");
    this.add(bottomBar.getComponent(), "growx, push, span");
    
    我一直试图理解使用说明,但它们很难理解。我希望这里有人知道如何使用MigLayout,并能帮助我。

    我使用的非常有用的方法是构建这些。它是免费的,也支持MigLayout

    按照你刚才在书中描述的做,我会:

    setLayout(new MigLayout("", "[220][grow]", "[grow][]"));
    add(sidebar, "cell 0 0,grow");
    add(main, "cell 1 0,grow");
    add(bottom, "cell 0 1 2 1,grow");
    

    这使边栏保持在固定的220(来自构造函数中的列规范),底部保持在具有首选大小的静态高度。第2列的宽度和第1列的高度将增加到填充,每个单元格中的组件也将增加到填充。

    您可以使用GridBagLayout完成此操作--不确定MigLayout是否是这里的最佳选项。我知道还有其他布局选项,但据我所知,MigLayout是最好的,因为它允许更多的位置和尺寸自由。@Jonathon做你正在做的事情。MigLayout和JGoodies FormLayout是最好的两个。不要去GridBag,因为它使用起来很痛苦。你好,谢谢你的评论。我尝试了上面的代码,除了一个小细节外,它运行良好。我在侧边栏右侧得到一个间距,在底部顶部也得到一个间距。有没有办法去掉这些?此外,我将研究WindowBuilder!制作构造器布局(“间隙0px 0px”、“[220][grow]”、“[grow][]”);我认为应该这样做。