public interface UIResource
ComponentUI.installUI()
メソッドおよびComponentUI.uninstallUI()
メソッドは、このインタフェースを使って、プロパティの値がオーバーライドされたかどうかを判定できます。たとえば、JListのcellRendererプロパティは、その初期値がnullの場合に限りBasicListUI.installUI()によって初期化されます。
if (list.getCellRenderer() == null) { list.setCellRenderer((ListCellRenderer)(UIManager.get("List.cellRenderer"))); }uninstallUI()のときに、プロパティの値がUIResourceのインスタンスである場合は、プロパティをnullにリセットします。
if (list.getCellRenderer() instanceof UIResource) { list.setCellRenderer(null); }このパターンは、java.awt.Componentのプロパティのフォント、フォアグラウンド、およびバックグラウンド以外のすべてのプロパティに適用されます。もし、これらのプロパティのうちの1つが初期化されていない場合、あるいは明示的にnullに設定されている場合には、そのコンテナが値を提供します。こうした理由により、コンポーネントのLook & Feelを動的に変更するためにinstallUI()が呼び出された場合、
"== null"
を信頼することはできません。したがって、installUI()実行時には、現在の値がUIResourceであるかどうかを調べます。
if (!(list.getFont() instanceof UIResource)) { list.setFont(UIManager.getFont("List.font")); }
ComponentUI
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.