重複の可能性:
Swing 素人のページネーション
私は自分のプログラム (JPanels の構造) でページ化されたドキュメントを表現しており、ドキュメントに追加および削除されるすべての要素とそのサイズを追跡し、それに応じてページ間で移動する必要があります。
私はこれを管理する方法を考え出し、ページの高さと残りの空き領域をチェックしてそれに基づいて動作するアルゴリズムを作成しました。コンポーネントの高さが十分に縮小された場合、または非常に高くなってから削除された場合、次のページから複数のコンポーネントを移動できるため、これには欠陥があります。また、新しい高さで最初のコンポーネントの高さを減らすと、前のページの空きスペースに収まる場合があります。最後の 2 つの文を組み合わせると、特にすべてのコードがリスナー内にあるため、コードを書くのは大変なことになります。
では、たくさんのページではなく、単一のコンポーネントを使用するとどうなるでしょうか。
そのコンポーネントには、高さが固定された空白スペース (ページを表す) と「ソリッド」スペース (トップページのフッター、ページ間のスペース、およびボトムページのヘッダーを表す) があります。
次に、要素がコンポーネントに追加されると、空白のスペースにのみ追加され、ソリッドのスペースはスキップされます。
問題は、どのコンポーネントがどの空白スペースにあるかを識別できることであり、要素の削除、追加、またはサイズ変更のために空白スペースの間に要素を移動することを心配する必要はありません。つまり、最初の空白がすべて埋まると、次の要素が次の空白に自動的に追加されます。これはまた、要素を削除すると、 Component が追加のコンポーネントをその空白スペースに収めることができるかどうかを自動的にチェックし、次のコンポーネントからそれを引き出すことを意味します。
とにかく、上に書いたことは不可能かもしれませんが、ここで私が達成しようとしていることを理解していただければ幸いです。
コードのその部分を簡単に書くためのアイデアがあれば、何ができるか教えてください。