|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object javax.swing.LookAndFeel
public abstract class LookAndFeel
LookAndFeel
は、その名前が示すとおり、Look & Feel をカプセル化します。Look & Feel のインストール時以外に、開発者が直接 LookAndFeel
と情報をやりとりすることは、ほとんどありません。通常は、開発者が Look & Feel をカスタマイズする場合にのみ、このクラスに注意する必要があります。
Swing の構築基盤では、各 JComponent
サブクラスが特定の ComponentUI
サブクラスの実装を持っています。ComponentUI
は、通常、「UI」、「コンポーネント UI」、「Look & Feel の委譲」などと呼ばれます。ComponentUI
サブクラスは、コンポーネントの特定の機能の Look & Feel を提供します。たとえば、JTree
は、ComponentUI
サブクラス TreeUI
の実装を必要とします。特定の ComponentUI
サブクラスの実装は、LookAndFeel
によって提供されます。各 JComponent
サブクラスは、JComponent
メソッド getUIClassID
を使用して、必要な ComponentUI
サブクラスを識別します。
各 LookAndFeel
実装は、getDefaults
から返される、UIDefaults
オブジェクト内に各 Swing UI クラス ID の値を指定することにより、適切な ComponentUI
サブクラスの実装を提供する必要があります。たとえば、BasicLookAndFeel
は、BasicTreeUI
を TreeUI
の具象実装として使用します。このために、BasicLookAndFeel
は、getDefaults
から返される UIDefaults
内にキーと値のペア "TreeUI"-"javax.swing.plaf.basic.BasicTreeUI"
を指定します。ComponentUI
サブクラスの実装を取得する方法については、UIDefaults.getUI(JComponent)
を参照してください。
LookAndFeel
がインストールされるとき、UIManager
はすべての UI クラス ID のエントリが存在するかどうかを確認しません。このため、現在の Look & Feel で特定の UI クラス ID の値が指定されておらず、JComponent
サブクラスのインスタンスが作成されている場合、ランダム例外が発生します。
UIManager
に記載されているとおり、各 LookAndFeel
に、開発者やシステムのデフォルトによって階層化されたデフォルトのセットを提供する機会が与えられます。一部の Swing コンポーネントは、特定のデフォルトのセットを提供するために Look & Feel を要求します。これらについては、特定のデフォルトを必要とする個々のクラスにドキュメント化されています。
ComponentUI
は、自身が Look & Feel を提供する JComponent
上にさまざまなプロパティーを設定する必要があります。この処理は、通常、ComponentUI
が JComponent
上にインストールされるときに行われます。プロパティーの設定は、開発者がプロパティーを設定していない場合にのみ行われるべきです。値が非プリミティブである場合は、現在の値が null
であるか、UIResource
を実装している場合にのみ、JComponent
上で ComponentUI
がプロパティーを変更するようにしてください。現在の値が null
であるか、UIResource
を実装している場合は、開発者がプロパティーを設定していません。このため、UI を自由に変更できます。たとえば、BasicButtonUI.installDefaults
は、button.getFont()
の戻り値が null
であるか、UIResource
を実装している場合にのみ、JButton
のフォントを変更します。一方、button.getFont()
の戻り値が null 以外
で、UIResource
を実装していない場合、BasicButtonUI.installDefaults
は JButton
のフォントを変更しません。
値がプリミティブである場合、たとえば不透明
である場合は、installProperty
メソッドが呼び出されるはずです。installProperty
は、開発者が値を変更していない場合にのみ、対応するプロパティーを変更します。
ComponentUI
実装は、推奨ガイドラインに従って必要なチェックを行い、プロパティーをインストールするときに、このクラスが提供するさまざまなインストールメソッドを使用します。
null
または UIResource
である場合、LookAndFeel
が提供するすべてのインストールメソッドは、デフォルト値にアクセスする必要があります。たとえば、フォントのインストールでは、次の処理が行われます。
JComponent c; Font font = c.getFont(); if (font == null || (font instanceof UIResource)) { c.setFont(UIManager.getFont("fontKey")); }フォントが
null
または UIResource
である場合、fontKey
というキーにより、デフォルトテーブルが照会されます。UIDefault
の取得メソッドはすべて、null
を渡された場合に NullPointerException
をスローします。このため、特に記載がないかぎり、 現在の値が null
または UIResource
で、デフォルトキーとして null
が指定された場合、LookAndFeel
の個々のインストールメソッドは NullPointerException
をスローします。また、特に指定がないかぎり、null
コンポーネントが渡された場合、これらすべての インストール
メソッドは NullPointerException
をスローします。
コンストラクタの概要 | |
---|---|
LookAndFeel()
|
メソッドの概要 | |
---|---|
UIDefaults |
getDefaults()
Look & Feel のデフォルトを返します。 |
abstract String |
getDescription()
「The CDE/Motif Look and Feel」など、この Look & Feel の実装に対する 1 行の説明を返します。 |
static Object |
getDesktopPropertyValue(String systemPropertyName,
Object fallbackValue)
Toolkit.getDefaultToolkit().getDesktopProperty() を呼び出して、指定されたシステムデスクトッププロパティーの値を返します。 |
Icon |
getDisabledIcon(JComponent component,
Icon icon)
無効な状態の Icon を返します。 |
Icon |
getDisabledSelectedIcon(JComponent component,
Icon icon)
無効で、かつ選択されているコンポーネントによって使用される Icon を返します。 |
abstract String |
getID()
この Look & Feel を識別する文字列を返します。 |
LayoutStyle |
getLayoutStyle()
この Look & Feel の LayoutStyle を返します。 |
abstract String |
getName()
「CDE/Motif」など、この Look & Feel を識別する短い文字列を返します。 |
boolean |
getSupportsWindowDecorations()
LookAndFeel が返す RootPaneUI インスタンスが JRootPane での ウィンドウ 装飾の提供をサポートする場合、true を返します。 |
void |
initialize()
Look & Feel を初期化します。 |
static void |
installBorder(JComponent c,
String defaultBorderName)
コンポーネントのボーダーのプロパティーにデフォルト値を設定する簡易メソッドです。 |
static void |
installColors(JComponent c,
String defaultBgName,
String defaultFgName)
コンポーネントのフォアグラウンドカラーおよびバックグラウンドカラーのプロパティーにデフォルト値を設定する簡易メソッドです。 |
static void |
installColorsAndFont(JComponent c,
String defaultBgName,
String defaultFgName,
String defaultFontName)
コンポーネントのフォアグラウンド、バックグラウンド、およびフォントのプロパティーにデフォルト値を設定する簡易メソッドです。 |
static void |
installProperty(JComponent c,
String propertyName,
Object propertyValue)
開発者がまだプロパティーを設定していない場合に、指定された名前と値でプロパティーをコンポーネントにインストールする簡易メソッドです。 |
abstract boolean |
isNativeLookAndFeel()
基本のプラットフォームに「ネイティブな」Look & Feel があり、現在の Look & Feel がその実装である場合に true を返します。 |
abstract boolean |
isSupportedLookAndFeel()
基本のプラットフォームがこの Look & Feel をサポートする、または許容する場合に true を返します。 |
static void |
loadKeyBindings(InputMap retMap,
Object[] keys)
指定されたバインディングで InputMap を生成します。 |
static ComponentInputMap |
makeComponentInputMap(JComponent c,
Object[] keys)
keys から ComponentInputMapUIResource を作成します。 |
static Object |
makeIcon(Class<?> baseClass,
String gifFile)
イメージをロードする UIDefault.LazyValue を作成し、返します。 |
static InputMap |
makeInputMap(Object[] keys)
keys から InputMapUIResource を作成します。 |
static JTextComponent.KeyBinding[] |
makeKeyBindings(Object[] keyBindingList)
KeyBinding の配列を構築する簡易メソッドです。 |
void |
provideErrorFeedback(Component component)
フォーカスを持つ、編集不可能な JTextField に貼り付けを行うなど、ユーザーが無効な操作をしようとしたときに呼び出されます。 |
String |
toString()
このオブジェクトのプロパティーを表示および識別する文字列を返します。 |
void |
uninitialize()
Look & Feel の初期化を解除します。 |
static void |
uninstallBorder(JComponent c)
ボーダーをアンインストールする簡易メソッドです。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
コンストラクタの詳細 |
---|
public LookAndFeel()
メソッドの詳細 |
---|
public static void installColors(JComponent c, String defaultBgName, String defaultFgName)
null
または UIResource
の場合だけです。
c
- 色を設定するコンポーネントdefaultBgName
- バックグラウンドのキーdefaultFgName
- フォアグラウンドのキー
NullPointerException
- 「例外」に記載されているとおりinstallColorsAndFont(javax.swing.JComponent, java.lang.String, java.lang.String, java.lang.String)
,
UIManager.getColor(java.lang.Object)
public static void installColorsAndFont(JComponent c, String defaultBgName, String defaultFgName, String defaultFontName)
null
または UIResource
の場合だけです。
c
- 色とフォントを設定するコンポーネントdefaultBgName
- バックグラウンドのキーdefaultFgName
- フォアグラウンドのキーdefaultFontName
- フォントのキー
NullPointerException
- 「例外」に記載されているとおりinstallColors(javax.swing.JComponent, java.lang.String, java.lang.String)
,
UIManager.getColor(java.lang.Object)
,
UIManager.getFont(java.lang.Object)
public static void installBorder(JComponent c, String defaultBorderName)
null
であるか、UIResource
のインスタンスである場合だけです。
c
- ボーダーを設定するコンポーネントdefaultBorderName
- ボーダーを指定するキー
NullPointerException
- 「例外」に記載されているとおりpublic static void uninstallBorder(JComponent c)
UIResource
である場合、null
に設定されます。
c
- ボーダーをアンインストールするコンポーネント
NullPointerException
- c
が null
の場合public static void installProperty(JComponent c, String propertyName, Object propertyValue)
UIResource
マーカーでラップできないため、このメソッドは非公開状態を使用してプロパティーがクライアントによって設定されているかどうかを判断します。
c
- プロパティーの設定対象のコンポーネントpropertyName
- 設定するプロパティーの名前propertyValue
- プロパティーの値
IllegalArgumentException
- 指定されたプロパティーがこのメソッドを使用して設定できるものでない場合
ClassCastException
- 開発者がプロパティー値を設定しておらず、型がプロパティーの型と一致しない場合
NullPointerException
- c
が null
であるか、開発者が名前付きプロパティーを設定しておらず、propertyValue
が null
である場合public static JTextComponent.KeyBinding[] makeKeyBindings(Object[] keyBindingList)
KeyBinding
の配列を構築する簡易メソッドです。このメソッドは非推奨ではありませんが、開発者がキーバインディングを指定するときは、このメソッドではなく、ActionMap
と InputMap
を使用するようにしてください。
このメソッドは、keyBindingList
の交互になるキーとアクション
のペアごとの、KeyBinding
の配列を返します。キー
は、KeyStroke.getKeyStroke
メソッドで指定された形式の String
、または KeyStroke
です。キーとアクションのペアの アクション
部分は、Action
の名前に対応する String
になっています。
次に、6 組の交互になる キーとアクション
のペアから 1 つの KeyBinding
配列を作成する例を示します。
JTextComponent.KeyBinding[] multilineBindings = makeKeyBindings( new Object[] { "UP", DefaultEditorKit.upAction, "DOWN", DefaultEditorKit.downAction, "PAGE_UP", DefaultEditorKit.pageUpAction, "PAGE_DOWN", DefaultEditorKit.pageDownAction, "ENTER", DefaultEditorKit.insertBreakAction, "TAB", DefaultEditorKit.insertTabAction });
keyBindingList の
長さが奇数の場合、最後の要素は無視されます。
キーとアクション
のペアの キー
部分または アクション
部分に null
値を指定すると、対応する値 null
を持つ KeyBinding
が作成されます。Swing のその他の部分では、KeyBinding
を構成する値として null 以外
が求められるので、キーとアクション
のペアの キー
部分にも アクション
部分にも、null
を指定しないようにしてください。
keyBindingList
- キーとアクション
のペアの配列
KeyBinding
の配列
NullPointerException
- keyBindingList
が null
の場合
ClassCastException
- ペアの キー
部分が KeyStroke
でも String
でもない場合、またはペアの アクション
部分が String
でない場合ActionMap
,
InputMap
,
KeyStroke.getKeyStroke(char)
public static InputMap makeInputMap(Object[] keys)
keys
から InputMapUIResource
を作成します。これは、loadKeyBindings(map, keys)
を呼び出し、InputMapUIResource
を返すことで新しい InputMapUIResource
を作成する簡易メソッドです。
keys
- 交互になる キーストロークとアクションキー
のペア (loadKeyBindings(javax.swing.InputMap, java.lang.Object[])
の説明どおり)
InputMapUIResource
loadKeyBindings(javax.swing.InputMap, java.lang.Object[])
public static ComponentInputMap makeComponentInputMap(JComponent c, Object[] keys)
keys
から ComponentInputMapUIResource
を作成します。これは、loadKeyBindings(map, keys)
を呼び出し、ComponentInputMapUIResource
を返すことで新しい ComponentInputMapUIResource
を作成する簡易メソッドです。
c
- ComponentInputMapUIResource
の作成に使用するコンポーネントkeys
- 交互になる キーストロークとアクションキー
のペア (loadKeyBindings(javax.swing.InputMap, java.lang.Object[])
の説明どおり)
InputMapUIResource
IllegalArgumentException
- c
が null
の場合loadKeyBindings(javax.swing.InputMap, java.lang.Object[])
,
ComponentInputMapUIResource
public static void loadKeyBindings(InputMap retMap, Object[] keys)
InputMap
を生成します。バインディングは、交互になる キーストロークとアクションキー
のペアのリストとして指定されます。キーストローク
は、KeyStroke
のインスタンスか、バインディングの KeyStroke
を示す String
になります。特定の形式については、KeyStroke.getKeyStroke(String)
を参照してください。ペアの アクションキー
部分は、KeyStroke
の InputMap
内の登録済みのキーになっています。
次に、2 組の キーとアクション
のペアを使って、InputMap
をロードする例を示します。
LookAndFeel.loadKeyBindings(inputMap, new Object[] { "control X", "cut", "control V", "paste" });
バインディング (キー
) のリストとして null
を指定した場合、retMap
は変更されません。
アクションキー
として null
を指定した場合、InputMap
から キーストローク
のエントリが削除されます。キーストローク
null
は無視されます。
retMap
- キーとアクション
のペアを追加する InputMap
keys
- retMap
に追加するバインディング
NullPointerException
- keys
が null 以外
で、空でなく、かつ retMap
が null
である場合KeyStroke.getKeyStroke(String)
,
InputMap
public static Object makeIcon(Class<?> baseClass, String gifFile)
UIDefault.LazyValue
を作成し、返します。戻り値は、UIDefaults.LazyValue
の実装になります。返されたオブジェクト上で createValue
が呼び出されると、イメージがロードされます。null 以外
のイメージは、UIResource
を実装する Icon
にラップされます。イメージのロードは、Class.getResourceAsStream(gifFile)
を使って行われます。
このメソッドは、引数のチェックを行いません。null 以外
の値を指定することを強くお勧めします。そうしないと、返されたオブジェクト上で createValue
を呼び出したとき、例外が発生する可能性があります。
baseClass
- リソースのロードに使用する Class
gifFile
- イメージをロードするパス
UIDefaults.LazyValue
。解決時に、LazyValue
は指定されたイメージをロードするUIDefaults.LazyValue
,
Icon
,
Class.getResourceAsStream(String)
public LayoutStyle getLayoutStyle()
LayoutStyle
を返します。戻り値は null
以外です。
通常、Look & Feel の LayoutStyle
は使用しません。代わりに、LayoutStyle
メソッド getInstance
を使用します。
LayoutStyle
LayoutStyle.getInstance()
public void provideErrorFeedback(Component component)
JTextField
に貼り付けを行うなど、ユーザーが無効な操作をしようとしたときに呼び出されます。デフォルトの実装では、ビープ音を鳴らします。別の動作を行う場合は、デフォルトの実装をサブクラスによってオーバーライドし、別のフィードバックを指定する必要があります。
component
- エラーが発生した Component
。null
も可 (この場合、エラー条件は Component
と直接関連付けられない)public static Object getDesktopPropertyValue(String systemPropertyName, Object fallbackValue)
Toolkit.getDefaultToolkit().getDesktopProperty()
を呼び出して、指定されたシステムデスクトッププロパティーの値を返します。指定されたプロパティーの値が null
の場合、fallbackValue
が返されます。
systemPropertyName
- 照会するシステムデスクトッププロパティーの名前fallbackValue
- システム値が null の場合、値として戻るオブジェクト
Toolkit.getDesktopProperty(java.lang.String)
public Icon getDisabledIcon(JComponent component, Icon icon)
Icon
を返します。このメソッドは、無効な状態の Icon
が指定されていない場合に、それを生成するために使用されます。たとえば、JButton
を作成し、setIcon
により Icon
のみを指定した場合このメソッドが呼び出され、無効な状態の Icon
が作成されます。icon
として null
が渡された場合、このメソッドは null
を返します。
Look & Feel によっては、無効な状態の Icon
が描画されず、無視されることがあります。
component
- Icon
を表示する JComponent
。null
も可icon
- 無効なアイコンを生成する Icon
Icon
。適切な Icon
を生成できない場合は null
public Icon getDisabledSelectedIcon(JComponent component, Icon icon)
Icon
を返します。このメソッドは、無効で、かつ選択されている状態のコンポーネントに対して、この状態の特定の Icon
が設定されていない場合に、Icon
を生成するために使用します。たとえば、JButton
を作成し、setIcon
により Icon
のみを指定した場合、このメソッドが呼び出され、無効でかつ選択されている Icon
が生成されます。icon
として null
が渡された場合、このメソッドは null
を返します。
Look & Feel によっては、選択された無効な状態の Icon
が描画されず、無視されることがあります。
component
- Icon
を表示する JComponent
。null
も可icon
- 選択された無効な状態のアイコンを生成する Icon
Icon
を生成できない場合は null
public abstract String getName()
public abstract String getID()
public abstract String getDescription()
public boolean getSupportsWindowDecorations()
LookAndFeel
が返す RootPaneUI
インスタンスが JRootPane
での ウィンドウ
装飾の提供をサポートする場合、true
を返します。
デフォルトの実装は false
を返します。ウィンドウ
装飾をサポートするサブクラスは、この実装をオーバーライドし、true
を返すようにします。
RootPaneUI
インスタンスがクライアント側の装飾をサポートする場合、true
JDialog.setDefaultLookAndFeelDecorated(boolean)
,
JFrame.setDefaultLookAndFeelDecorated(boolean)
,
JRootPane.setWindowDecorationStyle(int)
public abstract boolean isNativeLookAndFeel()
true
を返します。たとえば、基本のプラットフォームが CDE を実行する Solaris である場合、CDE/Motif の Look & Feel の実装が true
を返します。
true
public abstract boolean isSupportedLookAndFeel()
true
を返します。Look & Feel が特殊なリソースや、現在のプラットフォームに対して定義されていない法的契約に依存する場合、このメソッドは false
を返します。
true
UIManager.setLookAndFeel(javax.swing.LookAndFeel)
public void initialize()
UIManager
によって呼び出されるようにしてください。このメソッドは、UIManager
が getDefaults
を呼び出す前に呼び出されます。このメソッドは、Look & Feel のあらゆる初期化を実行するためのメソッドです。サブクラスは、static 初期化子ではなく、このメソッドで必要な 1 回かぎりの設定をすべて実行します。 Look & Feel クラスのオブジェクトは、isSupportedLookAndFeel()
が false
を返すことを確認するためにだけロードされる場合があるからです。
uninitialize()
,
UIManager.setLookAndFeel(javax.swing.LookAndFeel)
public void uninitialize()
UIManager
によって呼び出されるようにしてください。たとえば、UIManager.setLookAndFeel
は、Look & Feel の変更時にこのメソッドを呼び出します。
サブクラスは、このメソッドでいくつかのリソースを解放できます。
initialize()
,
UIManager.setLookAndFeel(javax.swing.LookAndFeel)
public UIDefaults getDefaults()
initialize
が呼び出されたあと、UIManager
によって呼び出されるようにしてください。
initialize()
,
uninitialize()
,
UIManager.setLookAndFeel(javax.swing.LookAndFeel)
public String toString()
Object
内の toString
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。