1

同じレベルのコンポーネントを別の同じレベルのコンポーネントの上に置くのは悪い習慣だと聞きました。

この場合、JPanelsについて話します。現在、すべてを個別のJPanelに分割し、それぞれに独自のレイアウトを設定してから、メインコンテンツペイン(JPanel)に追加しています。この方法は、あらゆる場所にあるすべてのコンポーネントで機能するレイアウトを構成するよりもはるかに簡単だと思います。私のロジックに欠陥がありますか?

4

1 に答える 1

2

パネルの内側にパネルを配置しても問題はありません。ただし、それをたくさん行う場合は、ネストされたパネルを大量に使用せずに、かなり複雑なコントロールの配置をサポートするレイアウトマネージャー(私のお気に入りはMiGLayout )を検討することをお勧めします。

一日の終わりには、コードの保守を容易にする構成を使用してください。互いに独立したコントロールのグループがある場合は、それらを別々のパネルに配置するのが適切な設計です。これにより、そのパネルを分割できます(テスト用、またはUIのクリエイティブウィンドウ用)。コントロールのセットが本質的に相互に関連付けられている場合は、高度なレイアウトマネージャーを備えた単一のパネルを検討してください。

場合によっては、2つのパネルの間に少量のバインドがあります(典型的な例は、リストのある1つのパネルと、リスト内の選択したアイテムの詳細ビューのある別のパネルです)。この場合、私は通常、2つの別々のパネルと2つの別々のプレゼンテーションモデルを使用し、次に1つのモデルで現在選択されているアイテムをインスペクターパネルの親にバインドします。ただし、検証やデータストレージなどに複数のパネルの値を使用していることがわかった場合は、パネルが多すぎる可能性があります。

私は何年にもわたってこれをたくさん行ってきましたが、私が決めた立場は、ビューを支える基礎となるプレゼンテーションモデルの論理的な線に沿ってUIを構成することです。UIのレイアウトで、使用するパネルの数などを駆動することはめったにありません...-MigLayout(および他にもあると確信しています)を使用すると、複雑なUIレイアウトもかなり単純になり、次のクラスを設計する方がはるかに優れています。コードのテストと保守を容易にする方法でのビューとモデル。

于 2012-09-05T05:49:44.100 に答える