私が作成したJavaSwingアプリでは、すべてのコンポーネントが密集しすぎているように見えます。
QTでは、レイアウトのパディングとマージンを指定できます。
スイングに似たものはありますか?
代替テキストhttp://img12.yfrog.com/img12/9612/screenshotscreenerconfi.png
これが私のアプリケーションのスクリーンショットです。私はきつすぎます(そうですか?どう思いますか?)。
ありがとう。
レイアウトマネージャーとしてMiGLayoutを使用できます。マージン/パディングを含む、あらゆる種類のカスタマイズが可能です。
GridBagLayoutManagerを見てください 。その最も複雑なレイアウトマネージャーですが、それですべてを達成することができます。
insetプロパティを持つGridBagConstraintObjectを使用し、top、bottom、left、およびrightコンポーネントへの分離を指定します。
例:GridBagConstraintObject.insets.left = 20
ほんの数行のコード(レイアウトの行ごとに1つ)でDesignGridLayoutを使用することにより、上記の例のはるかに優れたレイアウトを実現できます。DesignGridLayoutは、ランタイムプラットフォームの正しい間隔を自動的に使用します。
さらに、フォームでTitledBordersを使用しないことを強くお勧めします。これは、LayoutManager(可能な限り高度なもの)がさまざまなグループ間でさまざまなコンポーネントを自動的に正しく整列するのを妨げるためです。代わりに、JSeparatorでJLabelを使用できます(DesignGridLayoutには例がありますが、これは他のLayoutManagerで機能します)。
Java 1.6スイング以降、この種の作業を容易にする新しいGroupLayoutマネージャーがあります。
たとえば、次のメソッドがあります:setAutoCreateGaps():
... 2つのコンポーネントをSequentialGroupに追加すると、2つのコンポーネント間のギャップが自動的に作成されます...
例えば:
どのLayoutManagerを使用していますか?余白の追加は非常に簡単ですが、使用する特定のLayoutManagerによって異なります。
FormLayoutは、もう1つの優れたレイアウトマネージャーです。JFormDesignerのような優れたGUIエディターを使用すると、GUIの構築が非常に簡単になります。JFormDesignerは、ほとんどの場合、実際には自動的に十分なパディングを追加します。GridBagLayoutの使用はお勧めしません。それは問題なく機能しますが、非常に複雑であるため、使用と保守が困難です。