GridLayout
aが動的に作成されたときにJButton
、フッター(つまりJLabel
)がグリッドの下部に留まり、動的に作成されたボタンがフッターの真上に表示されるように、自分の中にあるアイテムを再配置する必要があります。
これは可能ですか?もしそうなら、私は例を見ることができますか?
私のグリッドは現在
new GridLayout(intIndex, 1);
ここで、intIndex
は動的要素が作成されるたびに増分されます。
GridLayout
aが動的に作成されたときにJButton
、フッター(つまりJLabel
)がグリッドの下部に留まり、動的に作成されたボタンがフッターの真上に表示されるように、自分の中にあるアイテムを再配置する必要があります。
これは可能ですか?もしそうなら、私は例を見ることができますか?
私のグリッドは現在
new GridLayout(intIndex, 1);
ここで、intIndex
は動的要素が作成されるたびに増分されます。
BorderLayout
フッターなので、フッターを下に置いて使用することをお勧めしますBorderLayout.PAGE_END
。次に、コンポーネントをGridLayout
中央に配置しBorderLayout.CENTER
ます。このように、フッターは常に下部に残り、コンテンツに干渉することはありません。これで、フッターに影響を与えることなく、任意のレイアウトマネージャーを使用するように自由に変更できます。
フッターが下部全体にまたがっている場合、これは良い修正になるはずですが、下隅にある種の小さなフッターを作成しようとしている場合は、少し難しくなりますが、どちらの方法でもお勧めしますフッターをコンテンツから分離しようとしています。
一つの答えは受け入れられますが、私が追加できるものはもっとあると思います。
レイアウトには2つのインターフェースがあります:LayoutManager
とLayoutManager2
。2番目のものは最初のものを拡張します。したがって、すべてのレイアウトクラスはから継承されLayoutManager
ます。
ここで、LayoutManager2
いくつかの制約に従ってコンポーネントを配置できます。たとえば、Shakedownの回答では、BorderLayout.CENTER
はの制約ですBorderLayout
。
ただし、これらの実装のレイアウトLayoutManager
は、特定のコンポーネントの制約を受け入れません。GridLayout
そのようなレイアウトです。左上隅からコンポーネントの追加を開始し、右に向かって進み、1行がいっぱいになると次の行に進みます。
あなたはに興味があるかもしれませんGridBagLayout
。