JFaceは、画像、フォント、および色の作成と廃棄に役立つResourceManager
クラスを提供しています。
各リソースタイプには、対応するリソース記述子:ImageDescriptor
,FontDescriptor
、ColorDescriptor
もあります。リソース記述子は、オペレーティングシステムリソースを占有することなくイメージ/フォント/色を参照する軽量オブジェクトです。
リソース記述子には、例えば、実際のリソースを作成することができます:
ImageDescriptor imageDescriptor = ImageDescriptor.createFromURL("...");
Image image = imageDescriptor.createImage();
ResourceManager
は、リソース記述子と処分されたときに、それが直接作成した自由なすべてのリソースからリソースを作成し、バッファリングすることができます。
LocalResourceManager
は、SWTコントロールに接続することができ、コントロールが処分されたときに廃棄されます。
子リソース・マネージャが親リソース・マネージャの1つによって以前に割り当てられたリソースを再利用できるように、リソース・マネージャをネストすることもできます。
プラグインにAbstractUIPlugin
のプラグインアクティベータがある場合は、すでにAbstractUIPlugin::getImageRegistry()
からアクセス可能なイメージレジストリがあります。レジストリを埋めるためにinitializeImageRegistry()
メソッドをオーバーライドします。 ImageRegistry::get()
は使用しないでください。このメソッドは、解放できないイメージを割り当て、プラグインのライフタイム全体にとどまるためです。
ほとんどのワークベンチAPIは、リソース記述子を使用します。 Action::setImageDescriptor()
またはIEditorInput::getImageDescriptor()
。アプリケーションコードがリソースを使用する場合、この習慣に従って、実際のリソースよりもリソース記述子を使用することをお勧めします。必要なときにのみリソースを作成し、必要なくなったらすぐに廃棄します。 JFaceの `ImageRegistry`でhttps://www.eclipse.org/articles/swt-design-2/swt-design-2.html
見て、' FontRegistry'、 'ColorRegistry'、...あなたにたくさんありがとうござい –