JavaTM Platform
Standard Ed. 6

java.awt.event
クラス MouseEvent

java.lang.Object
  上位を拡張 java.util.EventObject
      上位を拡張 java.awt.AWTEvent
          上位を拡張 java.awt.event.ComponentEvent
              上位を拡張 java.awt.event.InputEvent
                  上位を拡張 java.awt.event.MouseEvent
すべての実装されたインタフェース:
Serializable
直系の既知のサブクラス:
MenuDragMouseEvent, MouseWheelEvent

public class MouseEvent
extends InputEvent

コンポーネント内でマウスアクションが発生したことを示すイベントです。マウスアクションは、アクション発生時にマウスカーソルが明示されたコンポーネントの境界上にあるときにのみ、発生したと見なされます。Swing のコンポーネントのような軽量コンポーネントの場合は、該当するマウスイベント型がコンポーネントで有効になっている場合のみ、マウスイベントがコンポーネントにディスパッチされます。マウスイベント型を有効にするには、対応するマウスベースの EventListener をコンポーネントに追加するか (MouseListener または MouseMotionListener)、対応するマスクパラメータ (AWTEvent.MOUSE_EVENT_MASK または AWTEvent.MOUSE_MOTION_EVENT_MASK) を指定して Component.enableEvents(long) を呼び出します。マウスイベント型がコンポーネントで有効になっていない場合、対応するマウスイベントは、そのマウスイベント型が有効になっている最初の上位コンポーネントにディスパッチされます。

たとえば、MouseListener をコンポーネントに追加したか、enableEvents(AWTEvent.MOUSE_EVENT_MASK) を呼び出した場合は、MouseListener で定義されているすべてのイベントがコンポーネントにディスパッチされます。一方、MouseMotionListener が追加されておらず、AWTEvent.MOUSE_MOTION_EVENT_MASK を指定して enableEvents が呼び出されていない場合は、マウスモーションイベントはコンポーネントにディスパッチされません。代わりに、マウスモーションイベントは、マウスモーションイベントが有効になっている最初の上位コンポーネントにディスパッチされます。  

このイベントはコンポーネントオブジェクトによって生成される低レベルイベントであり、次の場合に生成されます。

MouseEvent オブジェクトは、コンポーネントの addMouseListner メソッドを使って、「関連する」マウスイベントを受け取るように登録されているすべての MouseListener オブジェクトまたは MouseAdapter オブジェクトに渡されます。(MouseAdapter オブジェクトは、MouseListener インタフェースを実装しています。各リスナーオブジェクトは、マウスイベントを含む MouseEvent を取得します。  

また、MouseEvent オブジェクトは、コンポーネントの addMouseMotionListener メソッドを使って、マウスモーションイベントを受け取るように登録されているすべての MouseMotionListener オブジェクトまたは MouseMotionAdapter オブジェクトに渡されます。(MouseMotionAdapter オブジェクトは、MouseMotionListener インタフェースを実装しています。各リスナーオブジェクトは、マウスモーションイベントを含む MouseEvent を取得します。  

マウスボタンをクリックするとイベントが生成され、登録されている MouseListener に送られます。 モーダルキーの状態は、InputEvent.getModifiers() および InputEvent.getModifiersEx() を使って検出できます。InputEvent.getModifiers() によって返されたボタンマスクは、すべてのボタンの現在の状態ではなく、状態が変更されたボタンのみを反映します (注:ALT_MASK/BUTTON2_MASK および META_MASK/BUTTON3_MASK の値がオーバーラップするため、修飾キーが関連するマウスイベントの場合は、これが常にあてはまるわけではありません)。すべてのボタンおよび修飾キーの状態を取得するには、InputEvent.getModifiersEx() を使用します。状態が変更されたボタンは getButton() により返されます。

たとえば、マウスの第 1 ボタンを押すと、イベントは次の順序で送信されます。

    id              modifiers    button 
    MOUSE_PRESSED:BUTTON1_MASK BUTTON1
    MOUSE_RELEASED:BUTTON1_MASK BUTTON1
    MOUSE_CLICKED:BUTTON1_MASK BUTTON1
 
複数のマウスボタンを押した場合は、各ボタンのプレス、リリース、クリックに対して個別のイベントが生成されます。

たとえば、ユーザーがボタン 1 に続いてボタン 2 を押し、同じ順序でボタンを離した場合、次の一連のイベントが生成されます。

    id              modifiers    button           
    MOUSE_PRESSED:BUTTON1_MASK BUTTON1
    MOUSE_PRESSED:BUTTON2_MASK BUTTON2
    MOUSE_RELEASED:BUTTON1_MASK BUTTON1
    MOUSE_CLICKED:BUTTON1_MASK BUTTON1
    MOUSE_RELEASED:BUTTON2_MASK BUTTON2
    MOUSE_CLICKED:BUTTON2_MASK BUTTON2
 
ボタン 2 を先に離した場合には、BUTTON2_MASKMOUSE_RELEASED/MOUSE_CLICKED のペアが先に生成され、そのあとに BUTTON1_MASKMOUSE_RELEASED/MOUSE_CLICKED のペアが生成されます。  

MOUSE_DRAGGED イベントは、マウスのボタンを離すまで、マウスのボタンが押された Component に (マウスの位置がその Component の境界内にあるかどうかに関係なく) 継続して送られます。ドラッグ&ドロップの実装はプラットフォームによって異なるため、ネイティブのドラッグ&ドロップの操作中に MOUSE_DRAGGED イベントは転送されません。 マルチスクリーン環境の場合には、マウスの位置がこの Component に関連した GraphicsConfiguration の境界の外側にある場合でも、マウスドラッグイベントは Component に送られます。ただし、この場合にマウスドラッグイベントで報告されるマウスの位置は、実際のマウスの位置と異なることがあります。

導入されたバージョン:
1.1
関連項目:
MouseAdapter, MouseListener, MouseMotionAdapter, MouseMotionListener, MouseWheelListener, 「Tutorial: Writing a Mouse Listener」, 「Tutorial: Writing a Mouse Motion Listener」, 直列化された形式

フィールドの概要
static int BUTTON1
          getButton() によって使用されるマウスボタン 1 がないことを示します。
static int BUTTON2
          getButton() によって使用されるマウスボタン 2 がないことを示します。
static int BUTTON3
          getButton() によって使用されるマウスボタン 3 がないことを示します。
static int MOUSE_CLICKED
          「マウスクリック」イベントです。
static int MOUSE_DRAGGED
          「マウドラッグ」イベントです。
static int MOUSE_ENTERED
          「マウスエンター」イベントです。
static int MOUSE_EXITED
          「マウスイグジット」イベントです。
static int MOUSE_FIRST
          マウスイベント識別子の範囲を示す最初の番号です。
static int MOUSE_LAST
          マウスイベント識別子の範囲を示す最後の番号です。
static int MOUSE_MOVED
          「マウスムーブ」イベントです。
static int MOUSE_PRESSED
          「マウスプレス」イベントです。
static int MOUSE_RELEASED
          「マウスリリース」イベントです。
static int MOUSE_WHEEL
          「マウスホイール」イベントです。
static int NOBUTTON
          どのマウスボタンも該当しないことを示します。
 
クラス java.awt.event.InputEvent から継承されたフィールド
ALT_DOWN_MASK, ALT_GRAPH_DOWN_MASK, ALT_GRAPH_MASK, ALT_MASK, BUTTON1_DOWN_MASK, BUTTON1_MASK, BUTTON2_DOWN_MASK, BUTTON2_MASK, BUTTON3_DOWN_MASK, BUTTON3_MASK, CTRL_DOWN_MASK, CTRL_MASK, META_DOWN_MASK, META_MASK, SHIFT_DOWN_MASK, SHIFT_MASK
 
クラス java.awt.event.ComponentEvent から継承されたフィールド
COMPONENT_FIRST, COMPONENT_HIDDEN, COMPONENT_LAST, COMPONENT_MOVED, COMPONENT_RESIZED, COMPONENT_SHOWN
 
クラス java.awt.AWTEvent から継承されたフィールド
ACTION_EVENT_MASK, ADJUSTMENT_EVENT_MASK, COMPONENT_EVENT_MASK, consumed, CONTAINER_EVENT_MASK, FOCUS_EVENT_MASK, HIERARCHY_BOUNDS_EVENT_MASK, HIERARCHY_EVENT_MASK, id, INPUT_METHOD_EVENT_MASK, INVOCATION_EVENT_MASK, ITEM_EVENT_MASK, KEY_EVENT_MASK, MOUSE_EVENT_MASK, MOUSE_MOTION_EVENT_MASK, MOUSE_WHEEL_EVENT_MASK, PAINT_EVENT_MASK, RESERVED_ID_MAX, TEXT_EVENT_MASK, WINDOW_EVENT_MASK, WINDOW_FOCUS_EVENT_MASK, WINDOW_STATE_EVENT_MASK
 
クラス java.util.EventObject から継承されたフィールド
source
 
コンストラクタの概要
MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger)
          指定された発生元のコンポーネント、タイプ、修飾子、座標、クリックカウントで、MouseEvent オブジェクトを構築します。
MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger, int button)
          指定された発生元のコンポーネント、タイプ、修飾子、座標、クリックカウントで、MouseEvent オブジェクトを構築します。
MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int xAbs, int yAbs, int clickCount, boolean popupTrigger, int button)
          指定された発生元のコンポーネント、タイプ、修飾子、座標、絶対座標、クリックカウントで、MouseEvent オブジェクトを構築します。
 
メソッドの概要
 int getButton()
          状態が変更されたマウスボタンがある場合、そのマウスボタンを返します。
 int getClickCount()
          このイベントに関連したマウスクリック数を返します。
 Point getLocationOnScreen()
          イベントの絶対 x、y 座標を返します。
static String getMouseModifiersText(int modifiers)
          イベントの発生時に押されていた「Shift キー」や「Ctrl+Shift キー」などの修飾キーやマウスボタンを記述する String を返します。
 Point getPoint()
          発生元のコンポーネントを基準とする、イベントの相対 x、y 座標値を返します。
 int getX()
          イベントが発生した位置の X 座標を発生元のコンポーネントに対する相対位置で返します。
 int getXOnScreen()
          イベントの絶対 x 座標 (水平方向) を返します。
 int getY()
          イベントが発生した位置の Y 座標を発生元のコンポーネントに対する相対位置で返します。
 int getYOnScreen()
          イベントの絶対 y 座標 (垂直方向) を返します。
 boolean isPopupTrigger()
          このマウスイベントが、そのプラットフォームのポップアップメニュートリガーイベントであるかどうかを返します。
 String paramString()
          このイベントを特定するパラメータの文字列を返します。
 void translatePoint(int x, int y)
          指定されたオフセットの x (水平方向) および y (垂直方向) を加算することにより、イベントの座標を新しい位置に移動します。
 
クラス java.awt.event.InputEvent から継承されたメソッド
consume, getModifiers, getModifiersEx, getModifiersExText, getWhen, isAltDown, isAltGraphDown, isConsumed, isControlDown, isMetaDown, isShiftDown
 
クラス java.awt.event.ComponentEvent から継承されたメソッド
getComponent
 
クラス java.awt.AWTEvent から継承されたメソッド
getID, setSource, toString
 
クラス java.util.EventObject から継承されたメソッド
getSource
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

MOUSE_FIRST

public static final int MOUSE_FIRST
マウスイベント識別子の範囲を示す最初の番号です。

関連項目:
定数フィールド値

MOUSE_LAST

public static final int MOUSE_LAST
マウスイベント識別子の範囲を示す最後の番号です。

関連項目:
定数フィールド値

MOUSE_CLICKED

public static final int MOUSE_CLICKED
「マウスクリック」イベントです。この MouseEvent は、マウスボタンを押して離すと発生します。

関連項目:
定数フィールド値

MOUSE_PRESSED

public static final int MOUSE_PRESSED
「マウスプレス」イベントです。この MouseEvent は、マウスボタンを押すと発生します。

関連項目:
定数フィールド値

MOUSE_RELEASED

public static final int MOUSE_RELEASED
「マウスリリース」イベントです。この MouseEvent は、マウスボタンを離すと発生します。

関連項目:
定数フィールド値

MOUSE_MOVED

public static final int MOUSE_MOVED
「マウスムーブ」イベントです。この MouseEvent は、マウスの位置を変更すると発生します。

関連項目:
定数フィールド値

MOUSE_ENTERED

public static final int MOUSE_ENTERED
「マウスエンター」イベントです。この MouseEvent は、マウスカーソルがコンポーネントの幾何学的図形の明示された領域に入ると発生します。

関連項目:
定数フィールド値

MOUSE_EXITED

public static final int MOUSE_EXITED
「マウスイグジット」イベントです。この MouseEvent は、マウスカーソルがコンポーネントの幾何学的図形の明示された領域から出ると発生します。

関連項目:
定数フィールド値

MOUSE_DRAGGED

public static final int MOUSE_DRAGGED
「マウドラッグ」イベントです。この MouseEvent は、マウスボタンを押している間にマウスの位置が変更されると発生します。

関連項目:
定数フィールド値

MOUSE_WHEEL

public static final int MOUSE_WHEEL
「マウスホイール」イベントです。これは MouseWheelEvent のみです。ホイール付きマウスのホイールを回転させると発生します。

導入されたバージョン:
1.4
関連項目:
定数フィールド値

NOBUTTON

public static final int NOBUTTON
どのマウスボタンも該当しないことを示します。getButton() によって使用されます。

導入されたバージョン:
1.4
関連項目:
定数フィールド値

BUTTON1

public static final int BUTTON1
getButton() によって使用されるマウスボタン 1 がないことを示します。

導入されたバージョン:
1.4
関連項目:
定数フィールド値

BUTTON2

public static final int BUTTON2
getButton() によって使用されるマウスボタン 2 がないことを示します。

導入されたバージョン:
1.4
関連項目:
定数フィールド値

BUTTON3

public static final int BUTTON3
getButton() によって使用されるマウスボタン 3 がないことを示します。

導入されたバージョン:
1.4
関連項目:
定数フィールド値
コンストラクタの詳細

MouseEvent

public MouseEvent(Component source,
                  int id,
                  long when,
                  int modifiers,
                  int x,
                  int y,
                  int clickCount,
                  boolean popupTrigger,
                  int button)
指定された発生元のコンポーネント、タイプ、修飾子、座標、クリックカウントで、MouseEvent オブジェクトを構築します。  

無効な id を渡して、特定できない動作を発生させないようにしてください。無効なイベントを生成すると (複数の old _MASK、または一致しない修飾子/ボタン値などを使用することによって)、特定できない動作が発生します。MouseEvent(source, id, when, modifiers, x, y, clickCount, popupTrigger, button) の形式で呼び出した場合、MouseEvent(source, id, when, modifiers, x, y, xAbs, yAbs, clickCount, popupTrigger, button) の呼び出しとまったく同じように動作します。この xAbs と yAbs は、画面上の発生元コンポーネントの位置に相対座標 x と y を加算した値として定義されます。発生元コンポーネントが表示されていない場合、xAbs と yAbs は 0 に設定されます。このメソッドは sourcenull の場合に IllegalArgumentException をスローします。

パラメータ:
source - イベントの発生元の Component
id - イベントを特定する整数
when - イベントの発生時刻を指定する long int 値
modifiers - イベント発生時に押された修飾キー (Shift、Ctrl、 Alt、メタなど)。 拡張された _DOWN_MASK または以前の _MASK 修飾子のいずれかを使用する必要がある。 ただし、両方のモデルを 1 つのイベントに混合してはならない。 拡張修飾子の使用が 望ましい
x - マウス位置の X 座標 (水平方向)
y - マウス位置の Y 座標 (垂直方向)
clickCount - イベントに関連したマウスクリックの回数
popupTrigger - boolean 型。ポップアップメニューに対するイベントの場合は true
button - 状態が変更されたマウスボタン。 NOBUTTONBUTTON1BUTTON2、または BUTTON3
例外:
IllegalArgumentException - 無効な button 値が 渡された場合
IllegalArgumentException - source が null の場合
導入されたバージョン:
1.4

MouseEvent

public MouseEvent(Component source,
                  int id,
                  long when,
                  int modifiers,
                  int x,
                  int y,
                  int clickCount,
                  boolean popupTrigger)
指定された発生元のコンポーネント、タイプ、修飾子、座標、クリックカウントで、MouseEvent オブジェクトを構築します。  

無効な id を渡して、特定できない動作を発生させないようにしてください。MouseEvent(source, id, when, modifiers, x, y, clickCount, popupTrigger) の形式で呼び出した場合、 MouseEvent(source, id, when, modifiers, x, y, xAbs, yAbs, clickCount, popupTrigger, MouseEvent.NOBUTTON) の呼び出しとまったく同じように動作します。この xAbs と yAbs は、画面上の発生元コンポーネントの位置に相対座標 x と y を加算した値として定義されます。発生元コンポーネントが表示されていない場合、xAbs と yAbs は 0 に設定されます。このメソッドは sourcenull の場合に IllegalArgumentException をスローします。

パラメータ:
source - イベントの発生元の Component
id - イベントを特定する整数
when - イベントの発生時刻を指定する long int 値
modifiers - イベント発生時に押された修飾キー (Shift、Ctrl、 Alt、メタなど)。 拡張された _DOWN_MASK または以前の _MASK 修飾子のいずれかを使用する必要がある。 ただし、両方のモデルを 1 つのイベントに混合してはならない。 拡張修飾子の使用が 望ましい
x - マウス位置の X 座標 (水平方向)
y - マウス位置の Y 座標 (垂直方向)
clickCount - イベントに関連したマウスクリックの回数
popupTrigger - boolean 型。ポップアップメニューに対するイベントの場合は true
例外:
IllegalArgumentException - source が null の場合

MouseEvent

public MouseEvent(Component source,
                  int id,
                  long when,
                  int modifiers,
                  int x,
                  int y,
                  int xAbs,
                  int yAbs,
                  int clickCount,
                  boolean popupTrigger,
                  int button)
指定された発生元のコンポーネント、タイプ、修飾子、座標、絶対座標、クリックカウントで、MouseEvent オブジェクトを構築します。  

無効な id を渡して、特定できない動作を発生させないようにしてください。無効なイベントを生成すると (複数の old _MASK、または一致しない修飾子/ボタン値などを使用することによって)、特定できない動作が発生します。コンストラクタに渡された相対座標と絶対座標の値が矛盾している場合でも MouseEvent インスタンスは作成され、例外はスローされません。このメソッドは sourcenull の場合に IllegalArgumentException をスローします。

パラメータ:
source - イベントの発生元の Component
id - イベントを特定する整数
when - イベントの発生時刻を指定する long int 値
modifiers - イベント発生時に押された修飾キー (Shift、Ctrl、 Alt、メタなど)。 拡張された _DOWN_MASK または以前の _MASK 修飾子のいずれかを使用する必要がある。 ただし、両方のモデルを 1 つのイベントに混合してはならない。 拡張修飾子の使用が 望ましい
x - マウス位置の X 座標 (水平方向)
y - マウス位置の Y 座標 (垂直方向)
xAbs - マウス位置の絶対 X 座標 (水平方向)
yAbs - マウス位置の絶対 Y 座標 (垂直方向)
clickCount - イベントに関連したマウスクリックの回数
popupTrigger - boolean 型。ポップアップメニューに対するイベントの場合は true
button - 状態が変更されたマウスボタン。 NOBUTTONBUTTON1BUTTON2、または BUTTON3
例外:
IllegalArgumentException - 無効な button 値が 渡された場合
IllegalArgumentException - source が null の場合
導入されたバージョン:
1.6
メソッドの詳細

getLocationOnScreen

public Point getLocationOnScreen()
イベントの絶対 x、y 座標を返します。デスクトップ領域が物理的に複数の画面デバイスにまたがる仮想デバイスのマルチスクリーン環境では、これらの座標は仮想の座標系を基準にしています。それ以外の場合、これらの座標は、コンポーネントの GraphicsConfiguration に関連付けられた座標系を基準にしています。

戻り値:
絶対 X 座標と絶対 Y 座標を 保持する Point オブジェクト
導入されたバージョン:
1.6
関連項目:
GraphicsConfiguration

getXOnScreen

public int getXOnScreen()
イベントの絶対 x 座標 (水平方向) を返します。デスクトップ領域が物理的に複数の画面デバイスにまたがる仮想デバイスのマルチスクリーン環境では、この座標は仮想の座標系を基準にしています。それ以外の場合、この座標は、コンポーネントの GraphicsConfiguration に関連付けられた座標系を基準にしています。

戻り値:
x 水平方向の絶対位置を示す整数
導入されたバージョン:
1.6
関連項目:
GraphicsConfiguration

getYOnScreen

public int getYOnScreen()
イベントの絶対 y 座標 (垂直方向) を返します。デスクトップ領域が物理的に複数の画面デバイスにまたがる仮想デバイスのマルチスクリーン環境では、この座標は仮想の座標系を基準にしています。それ以外の場合、この座標は、コンポーネントの GraphicsConfiguration に関連付けられた座標系を基準にしています。

戻り値:
y 垂直方向の絶対位置を示す整数
導入されたバージョン:
1.6
関連項目:
GraphicsConfiguration

getX

public int getX()
イベントが発生した位置の X 座標を発生元のコンポーネントに対する相対位置で返します。

戻り値:
x コンポーネントを基準とする水平位置を示す 整数

getY

public int getY()
イベントが発生した位置の Y 座標を発生元のコンポーネントに対する相対位置で返します。

戻り値:
y コンポーネントを基準とする垂直位置を示す 整数

getPoint

public Point getPoint()
発生元のコンポーネントを基準とする、イベントの相対 x、y 座標値を返します。

戻り値:
発生元のコンポーネントを基準とする X 座標および Y 座標を保持する Point オブジェクト

translatePoint

public void translatePoint(int x,
                           int y)
指定されたオフセットの x (水平方向) および y (垂直方向) を加算することにより、イベントの座標を新しい位置に移動します。

パラメータ:
x - 現在の X 座標に加算される x (水平方向) の値
y - 現在の Y 座標に加算される y (垂直方向) の値

getClickCount

public int getClickCount()
このイベントに関連したマウスクリック数を返します。

戻り値:
クリック数を表す整数値

getButton

public int getButton()
状態が変更されたマウスボタンがある場合、そのマウスボタンを返します。

戻り値:
次の定数のいずれか。 NOBUTTONBUTTON1BUTTON2、または BUTTON3
導入されたバージョン:
1.4

isPopupTrigger

public boolean isPopupTrigger()
このマウスイベントが、そのプラットフォームのポップアップメニュートリガーイベントであるかどうかを返します。  

:ポップアップメニューのトリガーはシステムによって異なります。したがって、共通プラットフォームを適切に機能させるために、mousePressed および mouseReleased の両方で isPopupTrigger をチェックする必要があります。

戻り値:
boolean 型。イベントがこのプラットフォームの ポップアップメニュートリガーイベントである場合は true

getMouseModifiersText

public static String getMouseModifiersText(int modifiers)
イベントの発生時に押されていた「Shift キー」や「Ctrl+Shift キー」などの修飾キーやマウスボタンを記述する String を返します。これらの文字列は awt.properties ファイルを変更することによりローカライズが可能です。  

InputEvent.ALT_MASKInputEvent.BUTTON2_MASK は同じ値になるため、どちらの修飾子に対しても文字列「Alt」が返されます。同様に、InputEvent.META_MASKInputEvent.BUTTON3_MASK は同じ値になるため、どちらの修飾子に対しても文字列「Meta」が返されます。

パラメータ:
modifiers - イベントの発生時に押されていた 修飾キーおよびマウスボタンを記述する修飾子マスク
戻り値:
イベント発生時に押されていた 修飾キーおよびマウスボタンの組み合わせを記述するテキスト文字列
導入されたバージョン:
1.4
関連項目:
InputEvent.getModifiersExText(int)

paramString

public String paramString()
このイベントを特定するパラメータの文字列を返します。このメソッドは、イベントログの作成およびデバッグに使用します。

オーバーライド:
クラス ComponentEvent 内の paramString
戻り値:
イベントを特定する文字列とその属性

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。