2

osxlionのクライアントのようなメールクライアントを再現しようとしています。だから私は次のようなことをしなければなりません:

osxlionのクライアントメール

それを行うためのレイアウトの最良の解決策は何ですか..誰かが私にいくつかの提案を与えることができますか?ありがとう!!!

4

3 に答える 3

5

解決策は、探している全体的なレイアウトを構築するまで、互いにネストされた、いくつかの異なるレイアウトとコンポーネントを使用することです。通常、ネストされた領域ごとにJPanelsを使用し、サイズ変更可能なウィンドウ領域にはJSplitPaneを使用します。

特定の機能のために、いくつかのカスタムコンポーネントを作成する(またはサードパーティのライブラリライブラリで見つける)必要がある場合があります。

推測では、 BorderLayoutGridBagLayoutを組み合わせて、ほとんどのメールクライアントレイアウトを実行できます。ただし、非常に柔軟な優れた汎用レイアウトマネージャーであるMigLayoutを検討することもできます。

まだ十分に行っていない場合は、優れたJavaSwingチュートリアルを実行する必要があります。

PS WindowBuilderは、迅速にプロトタイピングするための優れたツールですが、このようなより複雑なGUIデザインの場合、最終的にはそれらを手動でコーディングする方が優れていると思います。

于 2012-05-31T15:43:10.453 に答える
1

そのスクリーンショット全体では、水平方向のボックスレイアウトが必要な場合があります(スペースを埋めるためにコンポーネントを左から右にレイアウトします)。

ただし、最も適切なサイズのUIの場合と同様に、その中に他のレイアウトをネストする必要がある場合があります。

于 2012-05-31T15:40:08.060 に答える
1

これは、JSplitPaneを使用するためのものです。ユーザーが左と右の分割のサイズを変更できないようにする場合は、BorderLayoutを使用して左が次のように機能するようにします。

panel = new JPanel( new BorderLayout() );
panel.add( new LeftPanel(), BorderLayout.WEST );
panel.add( new CentralPanel(), BorderLayout.CENTER );

そうすれば、LeftPanelは好みの幅に応じてサイズが変更され、中央には残りの幅と高さが与えられるため、ユーザーがウィンドウを拡大および縮小するとサイズが変更されますが、左側のパネルは固定幅で拡大および縮小されます。高さ。

汎用レイアウトについて疑問に思っている場合は、TableLayoutがはるかに単純であるのに対して最も柔軟です。これを使用して克服できないレイアウトの問題は多くなく、理解しやすく(SpringLayout、GroupedLayoutなどとは対照的に)、コードがはるかに少なく、GridBagLayoutよりも堅牢です。

http://java.sun.com/products/jfc/tsc/articles/tablelayout/

しかし、あなたが説明する問題については、私はあなたがそれを使用する必要はないと思います。

于 2012-05-31T15:50:20.637 に答える