0

ときどき Dimension オブジェクトを割り当てずに、set/getPreferredSize、set/getMinimumSize、および set/getMaximumSize (またはそれらを回避する方法) を操作する良い方法はありますか? (JComponentsの拡張以外)

私のアプリケーションは、サイズ変更/移動のためにマウス ドラッグでこのメソッドを集中的に使用しており、配置されているすべての Dimension オブジェクトについて懸念しています。

set/getBounds のようなメソッドは、それらに渡された既に割り当てられたオブジェクトで機能することを知っていますが、他のメソッドに相当するものを見つけることができないようです。

4

4 に答える 4

4

良い働き方はありますかset/getPreferredSize, set/getMinimumSize, and set/getMaximumSize

はい: 使用しないでください。LayoutManager代わりに適切なを使用してください。LayoutManager はこれらの値の計算を担当するため、これを に委譲することをお勧めしLayoutManagerます。レイアウトの非常に良い出発点をすでに提供していますBorderLayout。場合によっては、 and/orGridBagLayoutを使用する必要があります。サードパーティのライブラリを使用する場合も有効です。FlowLayoutGridLayoutMigLayoutLayoutManager

Java Swing で set[Preferred|Maximum|Minimum]Size メソッドの使用を避けるべきですか?に関するこの回答を読むことを検討してください。

いずれにせよ、Dimensionオブジェクトのメモリ フットプリントは非常に小さく、通常はインスタンス化後すぐにガベージ コレクションが行われるため、オブジェクトについて心配する必要はありません。

パフォーマンスの問題があると思われる場合は、プロファイラーを使用して問題を見つけてください。

于 2013-05-27T14:52:17.703 に答える