0

Matisse で生成された GroupLayout やその他のギャップ間隔をグローバルに圧縮して、Matisse と GroupLayout で生成された Swing ダイアログをよりコンパクトにするにはどうすればよいですか?

Visual Basic の GUI ビルダーで Windows 用に開発されたいくつかの大きなダイアログを Java Swing で再実装するために Matisse を使用しました。

Swing Windows L&F での結果は、(特定の年齢の) ネイティブと非常によく似ていますが、より「広がっている」点が異なります。低解像度では、画面から漏れます。これはアプリにとって深刻な問題です。

測定すると、すべてのギャップが Windows の既定値よりも比例して大きいことが示されます。(Swing が異なる解像度にスケーリングする方法も役に立ちません。) これにはContainerGap、Matisse によって放出された と、GUI コンポーネント間の L&F 制御ギャップが含まれます。

GroupLayoutドキュメントと、見つけたマティスのドキュメントを調べました。ソース内のL&F パラメーターContainerGapと関連するクラスを確認しました。GroupLayout私が行く必要がある場所に私を連れて行ってくれるものは何もありません。

すべての洞察に感謝します。

4

1 に答える 1

3

これが間違っている可能性のある方法は多すぎて、それを修正する単一の調整ポイントはありません。Visual Basicバージョンは、単一のターゲットプラットフォームで確実に見栄えがします。設計上、Swingはに依存してpack()います。これにより、「これWindowにより、サブコンポーネントの推奨サイズとレイアウトに合うサイズになります」。このネストされたレイアウトの例に示すように、推奨されるサイズはプラットフォームによって異なる場合があります。代わりに、ここで提案されているように、利用可能なレイアウトを調べて、GUIデザイナーを集中的に使用してください。

Swingレイアウトを理解せずに、GUIデザイナでレイアウトの問題を修正する簡単な方法はありません。幸いなことに、GUIデザイナーは、さまざまなSwingレイアウトの効果を研究するための優れた方法です。

于 2013-03-08T21:07:38.117 に答える