このレイアウトを機能させるために、このレイアウトを管理する方法を見つけようとしています。アイデアはありますが、全体を再構築するのはかなりの作業です。
これはどのように見えるかです (JTextAreas: "コンポーネント名 (親 (親))"):
必要に応じて、質問の最後に構造を説明しました。この GUI は非常に動的であると想定されています。章、ページ、質問と回答を追加および削除できる必要があります。
上の画像の GUI はネストされた JPanel (最も厚い部分で最大 6 層まで!) を使用して作成されており、ドキュメントの変更に合わせて調整できるように、ほとんどの場合サイズが指定されていません。ただし、プログラムはすべての JPanel のサイズが収まるまで再計算を続けるため、ドキュメントの描画には多くの時間がかかります (1 ページあたり約 1 秒)。したがって、コンポーネントの初期サイズ (MigLayout) を指定できない限り、この方法ではうまくいきません。
私が思いついた唯一の代替案は、MigLayout を使用してすべてを 1 つのレイヤーに配置しようとすることですが、これは実行可能ですが、全体の動的部分でどの程度うまく機能するかはわかりません。すべてのコンポーネントを削除して再読み込みする (ドキュメントは 100 ページを超える可能性があります!) ことは、実際にはオプションとは思えません。ほとんどのコンポーネントは互いにネストされており、1 つのコンポーネントとして移動する必要があるため、このソリューションはさらに困難になります。
また、すべての幅は固定されていますが、ページ内の高さはすべて柔軟です。
どうすればいいのか本当にわかりません。既存のアイデアの 1 つを機能するように変更する必要がありますか、またはこのタイプの状況で使用されるライブラリはありますか? 別の方法はありますか?
何か案は?
また、約束どおり、これは説明された構造です:
ここで重要なのは、タブ内の JPanel です。ドキュメントが含まれています。ドキュメント自体は乱数のチャプターで構成されています。各章には乱数のページが含まれています。ページには MARINGS と CONTENT があります。画像では、ピンクと赤の部分がMARGNISで、その中のすべてがCONTENT(緑)です。CONTENT には、単一の TITLE (青) が含まれています。TITLE は、単一の JTextArea から作成されます。TITLE の後に、CONTENT に QUESTION(オレンジ) の乱数を含めることができます。QUESTION には JLabel(number) と JTextArea が 1 つの行に含まれており、以下はその ANSWER PANEL です。ANSWER PANELには、最大5つのANSWERS(黄色)が含まれています。各 ANSWER には、JCheckBox、JLabel (文字)、および JTextArea がすべて同じ行にあります。
ここで私はいくつかのことをマークしています: