我使用摇摆GroupLayout我感到困惑的价值观 GroupLayout.DEFAULT_SIZEGroupLayout.PREFERRED_SIZE.我从来不知道什么时候利用他们中的每一个在方法一样 GroupLayout.addComponent(Component, int, int, int).

假设我有一个代号:

GroupLayout l = ...;

l.setHorizontalGroup(l.createSequentialGroup()
    .addComponent(tf1)
    .addComponent(tf2));

l.setVerticalGroup(l.createParallelGroup()
    .addComponent(tf1)
    .addComponent(tf2));

有两个 JTextFields在一个单一的线奠定了 GroupLayout (一顺序的集团水平和一个平行小组的垂直).如果我调整窗口现在,两个部件获得可用的空间(50%)。但是我想要的只有第一个文本领域的增长/缩水平,只有第二文本领域的增长/缩垂直。什么价值 min, prefmax 我应该用它来完成吗?我知道我可以试试吧,看看什么样的组合的工作,但我想知道背后的推理这个问题。

有帮助吗?

解决方案

一些指导,可在发现如何使用的GroupLayout:元件尺寸和可调整大小。关于DEFAULT_SIZEPREFERRED_SIZE

  

它们可以在所述方法中用作参数

 addComponent(Component comp, int min, int pref, int max)
  

要强制的组分是可调整大小(允许收缩和生长):

 group.addComponent(component, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  

这允许组件大小为零(最小)之间调整到任何尺寸(如Short.MAX_VALUE最大尺寸装置“无限”)。如果我们希望该组件不收缩低于其默认最小大小,我们将在第二个参数使用GroupLayout.DEFAULT_SIZE而不是0。

     

要使一个组件固定大小(抑制调整大小):

 group.addComponent(component, GroupLayout.PREFERRED_SIZE,
     GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)...

有趣的是,恒定值是负的,所以它们不能被误认为是实际的约束。

其他提示

我也搞不清楚关于如何 GroupLayout.DEFAULT_SIZEGroupLayout.PREFERRED_SIZE 用在 GroupLayout.SequentialGroup.addComponent(Component c, int min, int pref, int max), 甚至后引用GroupLayout部分的教程和一个java.net 文章,题为 越来越知道GroupLayout,第1部分.

潜入JAVA1.6.0_27GroupLayout.javasource我找到答案在ComponentSpring类。从我能够作出这些规则:

如果一个最小尺寸是需要:

  1. 和所提供的 min 值的非消极的,值返回。
  2. 否则,如果它 PREFERRED_SIZE, 我们遵循的规则的首选的大小。
  3. 别组件的最小尺寸是返回。

如果一个优选的大小需要:

  1. 和所提供的 pref 值的非消极的,值返回。
  2. 否则,如果它 DEFAULT_SIZEPREFERRED_SIZE, 返回部件的大小。

如果一个最大尺寸是需要:

  1. 和所提供的 max 值的非消极的,值返回。
  2. 否则,如果它 PREFERRED_SIZE, 我们遵循的规则的首选的大小。
  3. 别组件的maximumsize返回。

作为trashgod已经指出的,该定义是负面的。其他任何负值分,县和最不管 DEFAULT_SIZEPREFERRED_SIZE 是错误和打的断言。

之间的相互作用 SequentialGroup.addComponent 分,县和最大尺寸并不立即显而易见我的教程。现在我知道为什么 PREFERRED_SIZE,DEFAULT_SIZE,PREFERRED_SIZE 是固定的,为什么不要紧,如果中的论点是 DEFAULT_SIZEPREFERRED_SIZE 和如何内容产生固定的尺寸的价值观 DEFAULT_SIZE,300,Short.MAX_VALUE 的工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top