1

このレイアウトを機能させるために、このレイアウトを管理する方法を見つけようとしています。アイデアはありますが、全体を再構築するのはかなりの作業です。

これはどのように見えるかです (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 がすべて同じ行にあります。

ここで私はいくつかのことをマークしています:

ここに画像の説明を入力

4

1 に答える 1

2

必要なデザインが揃っているようです。各セクションを分割し、そのセクションを実現するために必要なレイアウトを適用します。各セクションは、自己完結型のコンポーネントである必要があります。

私の考えでは、データのモデリングから始めます。章のリストを含むドキュメント モデルが必要です。これには、質問のリストで構成されるタイトルのリストで構成されるページのリストが含まれます。

次に、モデルの各レベルのビューを提供します。これにより、分離して各ビューの個々のニーズに集中し、コード ロジックを再利用することができます。また、変更が必要な場合は、変更がより簡単になり、プログラム全体に反映されることも意味します

タブ内にレイアウトされたドキュメント/チャプターについて、あなたは正しい考えを持っているようです。

私はフォロースルーします。各ページは、おそらく GridLayout のようなものを使用して、自己完結型のコンポーネントになります。

各コンテンツ セクションは、タイトル エディターと質問で構成される独自のコンポーネントになります。

ここでは BorderLyout を使用し、タイトル エディターを北の位置に配置し、質問パネルを中央に配置します。次に、質問ペインに GridLayout のようなものを使用できます。

余白については、EmptyBorders を使用して達成できます。

于 2013-07-07T23:04:03.580 に答える