Java 使用MigLayout布局GUI

Java 使用MigLayout布局GUI,java,swing,layout,Java,Swing,Layout,我是MigLayout的新手,我浏览了他们提供的快速入门,还观看了YouTube上的教程。我必须布局以下GUI 我尽我所能地努力,但没有成功。元素没有正确放置,比如十字架被徽标粘住,云彩将正方形附在上面等等。我得到了这个(我已经改变了云图) 我浏览了很多网页,但仍然没有任何帮助。什么样的代码/方法来布局此页面,以便我能够开始/理解?或者这个页面前两行的代码是什么?(将comp的名称记为comp1、comp2等,或根据您的喜好) 我的布局代码 setLayout(new MigLayout("

我是MigLayout的新手,我浏览了他们提供的快速入门,还观看了YouTube上的教程。我必须布局以下GUI

我尽我所能地努力,但没有成功。元素没有正确放置,比如十字架被徽标粘住,云彩将正方形附在上面等等。我得到了这个(我已经改变了云图)

我浏览了很多网页,但仍然没有任何帮助。什么样的代码/方法来布局此页面,以便我能够开始/理解?或者这个页面前两行的代码是什么?(将comp的名称记为comp1、comp2等,或根据您的喜好)

我的布局代码

setLayout(new MigLayout("","[left][fill][fill][fill][fill][fill][right]",""));
add(new JLabel(logo),"span 6"); //the tucan bird
add(cross,"top,align right,wrap"); //the exit cross
add(news,"span,gapleft 800,wrap"); //the label 'news'
add(new JLabel(cloud),"span 3");  //the large cloud picture 

SmallPanel one=new SmallPanel(); //Small Panel are square boxes which I later fill with news
        add(one);

SmallPanel two=new SmallPanel();
    add(two,"wrap");

MigLayout的几个注意事项:

  • 调试布局的第一步是将
    debug
    标志添加到布局约束中(请参见:

    这将有助于用彩色边框勾勒出布局约束,以便您可以看到其中的内容

  • 在我看来,布局对象本身的列/行约束(您的
    [left][fill]系列…[right]
    应该是最后的选择。我尤其遇到了
    fill
    约束没有达到我期望的效果的问题。不过,在您的特定情况下,一些列约束可能会有所帮助,这会使我从答案的第一部分列表中走出来,进入第二部分
  • 您在上面的图像表单中发布的布局实际上只有3列:

  • 徽标和天气图标/文本
  • 图像列1(包括“新闻”标签)
  • 图像列2(顶部有“关闭”图标)
  • 由于您希望第一列比其他列更宽,我建议如下:

    setLayout(new MigLayout("", "20px[75%]5px[pref]5px[pref]", ""));
    
    如果你这样做,把
    span
    s和
    gapleft 800
    从你现有的布局中去掉;我认为它的其余部分应该仍然合适。你可能还需要在你的
    cloud
    label/icon-
    spany 3
    上加一个
    spany 2
    ,如果这个标签包含天气的文字;
    spany 2


    我现在使用的计算机并不是为您测试这一点而设置的,但希望一般建议能让您走上正确的轨道。摆弄布局可能是GUI编程中更令人沮丧的部分之一不要绝望,不要忘了
    debug
    标志!

    代码在哪里?您有什么问题?是的,它与programmin有关g、 我已经开发了所有必要的模块,如新闻解析器、天气模块、字典,但在GUI中运行了2个小时。请帮助我想我不明白你在寻求什么样的帮助。我完全搞砸了。十字架不会移到最右边。方形块不会移到右边,而是与 cloud@admdrew当前位置请查看编辑。我正在努力寻求帮助。
    setLayout(new MigLayout("", "20px[75%]5px[pref]5px[pref]", ""));