0

私は次のようにJavaフレームでJLabelを初期化します:

contentPane.add(myLabel, cc.xywh(1, 1, 31, 6, CellConstraints.DEFAULT, CellConstraints.BOTTOM));

しかし、JFrameを表示する前に、trueを返す場合、myLabelをBOTTOMではなくDEFAULTに設定するという小さな条件を作成しますが、次のように再定義する以外は、とにかく見つけることができません。

contentPane.add(myLabel, cc.xywh(1, 1, 31, 6));

では、垂直位置プロパティを編集するためのより良い方法はありますか?

4

1 に答える 1

1

jgoodiesを使用していると仮定するとFormLayout、インスタンスの再利用には多少の制限がありCellConstraintsます。ドキュメントと例から、各コンポーネントがパネルに追加され、CellConstraintsインスタンスがコピーされているように見えます。さらに、現在のコンポーネントの制約を収集しようとすると、のコピーCellConstraints返されます。ただし、オプションがあります。そのコピーを取得しCellConstraints、パブリックインスタンス変数を変更してから、この更新された制約セットを使用してをvAlign呼び出すことができます。setConstraintsFormLayout

FormLayout layout = (FormLayout)contentPane.getLayout(); 
cc = layout.getConstraints(myLabel);
cc.vAlign = CellConstraints.DEFAULT;
layout.setConstraints(myLabel, cc);

これは、提供した単純な再追加よりも少し冗長ですが、元のインスタンスで魔法の数(1,1,31,6)を維持する必要がなくなります。

于 2010-06-20T12:25:27.240 に答える