3

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 の仕様

4

2 に答える 2

3

私の知る限り、GroupLayout コンポーネントが伸びたり、ずれたりしないようにする唯一の方法は、関連するコンポーネントが ParallelGroup 内にあることを必要とします。ParallelGroup のサイズ変更可能フラグを false に設定するのは簡単です。

関連するフラグを持つ ParallelGroup 作成者の Javadoc

たとえば、次のコードでは、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
于 2011-06-18T23:25:35.903 に答える
1

私が知る限りではありません。私はユーティリティクラスでそれを処理しました:

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);
    }
}
于 2011-01-18T03:08:44.270 に答える