【问题标题】:Stopping GroupLayout components from stretching vertically阻止 GroupLayout 组件垂直拉伸
【发布时间】:2010-08-26 16:55:06
【问题描述】:

有没有一种简单的方法可以让 GroupLayout 应用程序中的所有(或大部分)组件不垂直拉伸?我知道我可以通过在添加时强制每个组件为其首选大小来做到这一点,但这会使代码更加冗长:

       .addGroup(layout.createSequentialGroup()
          .addComponent(oDevRadio)
          .addComponent(oInstRadio)
       )

变成

       .addGroup(layout.createSequentialGroup()
          .addComponent(oDevRadio,
                        GroupLayout.PREFERRED_SIZE,
                        GroupLayout.PREFERRED_SIZE,
                        GroupLayout.PREFERRED_SIZE)
          .addComponent(oInstRadio,
                        GroupLayout.PREFERRED_SIZE,
                        GroupLayout.PREFERRED_SIZE,
                        GroupLayout.PREFERRED_SIZE)
       )

有没有办法将其设置为默认值,只需指定我希望可拉伸的元素?

参考文献 - addComponent's spec

【问题讨论】:

    标签: swing grouplayout


    【解决方案1】:

    据我所知,告诉 GroupLayout 组件不要拉伸或以其他方式错位的唯一方法要求相关组件位于 ParallelGroup 内。然后将 ParallelGroup 的 resizeable 标志设置为 false 是一件简单的事情。

    Javadoc of ParallelGroup creator with relevant flag

    例如,在下面的代码中 jspCasts 是一个非常高的组件。如果没有将标志设置为 false 的新 ParallelGroup,则它旁边的组件要么会拉伸,要么不会按应有的方式整齐对齐。

    vGroup.addGroup(gl.createParallelGroup(Alignment.LEADING).
        addComponent(jspCasts).
        addGroup(gl.createParallelGroup(Alignment.CENTER, false).
          // without worrying about vertical stretching or misalignment, 
          // add your components here
    

    【讨论】:

      【解决方案2】:

      据我所知没有。我已经用实用程序类处理了它:

      package alpha;
      
      import java.awt.Component;
      import javax.swing.GroupLayout;
      import javax.swing.GroupLayout.Group;
      
      public class GroupLayoutUtil
      {
          public static GroupLayout.Group addPreferred(Group g, Component c)
          {
              return g.addComponent(c, GroupLayout.PREFERRED_SIZE, 
                      GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE);
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2019-03-10
        • 2013-08-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-28
        • 2018-02-25
        • 2010-10-14
        • 1970-01-01
        相关资源
        最近更新 更多