- すべての実装されたインタフェース:
Serializable
public class TransferHandler extends Object implements Serializable
Transferable
の転送処理に使用します。 Transferable
は、カット、コピー、ペーストなどを通じてクリップボードに送るデータまたはクリップボードから受け取るデータを表すために使用します。 また、ドラッグ・アンド・ドロップ操作で、コンポーネントからのドラッグおよびコンポーネントへのドロップを表すために使用します。 Swingには、このクラスの実装により提供される機能を使用するカット、コピー、ペーストのキーボード・バインディングを自動的にサポートする機能が用意されています。 また、ドラッグ・アンド・ドロップについても同様に自動的にサポートされます。 Swingの開発者は、主にSwingコンポーネントでtransferHandler
プロパティを設定することにより、転送のセマンティックスを指定する作業に集中できます。
このクラスは、コンストラクタのプロパティ名を指定するだけで、デフォルトの動作として、コンポーネントのプロパティを転送するよう実装されます。 たとえば、クリップボードやドラッグ・アンド・ドロップ操作によりコンポーネント間でフォアグラウンド・カラーを転送するには、文字列「foreground」を使用してTransferHandler
を構築します。 組込みサポートは、getForeground
によって返されたカラーを転送元として使用し、setForeground
を転送先に使用します。
詳細は、『The Java Tutorial』の「How to Use Drag and Drop and Data Transfer」を参照してください。
- 導入されたバージョン:
- 1.4
-
ネストされたクラスのサマリー
ネストされたクラス 修飾子と型 クラス 説明 static class
TransferHandler.DropLocation
ドロップされたデータを挿入する位置を表します。static class
TransferHandler.TransferSupport
このクラスには、クリップボードによる転送またはドラッグ・アンド・ドロップによる転送に関連する詳細情報をすべてカプセル化する機能と、ドラッグ・アンド・ドロップ操作をカスタマイズする機能があります。 -
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 static int
COPY
「copy」の転送アクションを表すint
です。static int
COPY_OR_MOVE
「copy」または「move」のソース・アクション機能を表すint
です。static int
LINK
「link」の転送アクションを表すint
です。static int
MOVE
「move」の転送アクションを表すint
です。static int
NONE
転送アクションがないことを表すint
です。 -
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protected
TransferHandler()
サブクラスに便利なコンストラクタです。TransferHandler(String property)
クリップボードまたはドラッグ・アンド・ドロップ操作によってコンポーネント間のJava Beanプロパティを転送できる転送ハンドラを構築します。 -
メソッドのサマリー
修飾子と型 メソッド 説明 boolean
canImport(JComponent comp, DataFlavor[] transferFlavors)
コンポーネントが実際に一連のデータ・フレーバのインポートを試みる前に、データ・フレーバのインポートを受け入れるかどうかを示します。boolean
canImport(TransferHandler.TransferSupport support)
このメソッドは、開発者が転送のプロパティの設定や、転送が可能かどうかの判断をできるようにするため、ドラッグ・アンド・ドロップ操作中に繰返し呼び出されます。戻り値がtrue
の場合は、現在、指定のTransferSupport
(転送の詳細情報すべてが格納されている)によって表される転送が可能です。戻り値がfalse
の場合は、転送が拒否されます。protected Transferable
createTransferable(JComponent c)
データ転送のソースとして使用するTransferable
を作成します。void
exportAsDrag(JComponent comp, InputEvent e, int action)
Swingドラッグ・サポートを開始します。protected void
exportDone(JComponent source, Transferable data, int action)
データのエクスポート後に呼び出されます。void
exportToClipboard(JComponent comp, Clipboard clip, int action)
指定されたコンポーネントを指定されたクリップボードへ転送します。static Action
getCopyAction()
クリップボードへのコピー操作を実行するAction
を返します。static Action
getCutAction()
クリップボードへの切取り操作を実行するAction
を返します。Image
getDragImage()
ドラッグ・イメージを返します。Point
getDragImageOffset()
ドラッグするイメージのアンカー・オフセットを返します。static Action
getPasteAction()
クリップボードからの貼付け操作を実行するAction
を返します。int
getSourceActions(JComponent c)
ソースでサポートされている転送アクションの種類を返します。返される値は、COPY
、MOVE
、およびLINK
のビット単位の論理和です。Icon
getVisualRepresentation(Transferable t)
転送の外観を設定するオブジェクトを返します。boolean
importData(JComponent comp, Transferable t)
クリップボードまたはDNDドロップ操作からコンポーネントへ転送します。boolean
importData(TransferHandler.TransferSupport support)
クリップボードまたはドラッグ・アンド・ドロップ操作から転送します。void
setDragImage(Image img)
ドラッグ・イメージ・パラメータを設定します。void
setDragImageOffset(Point p)
ドラッグするイメージのアンカー・オフセットを設定します。
-
フィールド詳細
-
NONE
public static final int NONE転送アクションがないことを表すint
です。- 関連項目:
- 定数フィールド値
-
COPY
public static final int COPY「copy」の転送アクションを表すint
です。 データがクリップボードにコピーされたとき、またはドラッグ・アンド・ドロップ操作で別の場所へコピーされたときに使用されます。- 関連項目:
- 定数フィールド値
-
MOVE
public static final int MOVE「move」の転送アクションを表すint
です。 データがクリップボードに移動(カット)されたとき、またはドラッグ・アンド・ドロップ操作で別の場所へ移動されたときに使用されます。- 関連項目:
- 定数フィールド値
-
COPY_OR_MOVE
public static final int COPY_OR_MOVE「copy」または「move」のソース・アクション機能を表すint
です。- 関連項目:
- 定数フィールド値
-
LINK
public static final int LINK「link」の転送アクションを表すint
です。 この値を使って、ドラッグ・アンド・ドロップ操作でデータがリンクされるように指定できます。- 導入されたバージョン:
- 1.6
- 関連項目:
DnDConstants.ACTION_LINK
, 定数フィールド値
-
-
コンストラクタの詳細
-
TransferHandler
public TransferHandler(String property)クリップボードまたはドラッグ・アンド・ドロップ操作によってコンポーネント間のJava Beanプロパティを転送できる転送ハンドラを構築します。- パラメータ:
property
- 転送するプロパティの名前。転送ハンドラに関連付けられているプロパティがない場合はnull
も可(たとえばその他の種類の転送を実行するサブクラス)
-
TransferHandler
protected TransferHandler()サブクラスに便利なコンストラクタです。
-
-
メソッドの詳細
-
getCutAction
public static Action getCutAction()クリップボードへの切取り操作を実行するAction
を返します。 実行すると、このアクションは、コンポーネントのTransferHandler
上でMOVE
アクションを指定してexportToClipboard
を呼び出すことにより、ActionEvent
のJComponent
ソースを操作します。- 戻り値:
- クリップボードへの切取りを実行する
Action
-
getCopyAction
public static Action getCopyAction()クリップボードへのコピー操作を実行するAction
を返します。 実行すると、このアクションは、コンポーネントのTransferHandler
上でCOPY
アクションを指定してexportToClipboard
を呼び出すことにより、ActionEvent
のJComponent
ソースを操作します。- 戻り値:
- クリップボードへのコピーを実行する
Action
-
getPasteAction
public static Action getPasteAction()クリップボードからの貼付け操作を実行するAction
を返します。 実行すると、このアクションは、コンポーネントのTransferHandler
上でクリップボード・コンテンツを指定してimportData
を呼び出すことにより、ActionEvent
のJComponent
ソースに影響を及ぼします。- 戻り値:
- クリップボードからの貼付けを実行する
Action
-
setDragImage
public void setDragImage(Image img)ドラッグ・イメージ・パラメータを設定します。 呼び出しまでに描画するイメージを準備する必要があります。 パフォーマンス上の理由から、イメージは参照によって格納されます。- パラメータ:
img
- ドラッグするイメージ
-
getDragImage
public Image getDragImage()ドラッグ・イメージを返します。 ドラッグするイメージが存在しない場合、戻り値はnull
です。- 戻り値:
- ドラッグ・イメージへの参照
-
setDragImageOffset
public void setDragImageOffset(Point p)ドラッグするイメージのアンカー・オフセットを設定します。null
であってはならない。- パラメータ:
p
- イメージの左上隅を基準にしたイメージのアンカー・オフセットの座標に対応するPoint
オブジェクト
-
getDragImageOffset
public Point getDragImageOffset()ドラッグするイメージのアンカー・オフセットを返します。- 戻り値:
- イメージの左上隅を基準にしたイメージのアンカー・オフセットの座標に対応する
Point
オブジェクト。 デフォルトではポイント(0,0)
が返されます。
-
exportAsDrag
public void exportAsDrag(JComponent comp, InputEvent e, int action)Swingドラッグ・サポートを開始します。 コンポーネントでdragEnabledプロパティが設定されている場合、javax.swing.plaf.basic
パッケージのさまざまなUIの実装から、このメソッドが呼び出されます。 UIのカスタム実装から呼び出して、Swingドラッグ・サポートを使用できます。 また、JComponent
のサブクラスとして記述されるSwingの拡張から呼び出して、Swingドラッグ・サポートの機能を利用できます。このメソッドの呼出しが戻る時点で転送が完了している必要はありません。つまり、このメソッドの呼出しによって、ドロップの待機が妨げられることはありません。 転送は、
java.awt.dnd
メカニズムのSwingの実装を使用して実行され、開発者がそれ以上処理を追加する必要はありません。 転送が完了すると、exportDone
メソッドが呼び出されます。- パラメータ:
comp
- 転送されるデータを保持するコンポーネント。TransferHandler
の共有を可能にするために提供されるe
- 転送をトリガーしたイベントaction
- 最初に要求された転送アクション。COPY
、MOVE
、またはLINK
。DnDシステムは、ドラッグ操作中に使用されるアクションを変更することができる
-
exportToClipboard
public void exportToClipboard(JComponent comp, Clipboard clip, int action) throws IllegalStateException指定されたコンポーネントを指定されたクリップボードへ転送します。 このメソッドは、コンポーネントのアクション・マップに登録されている、デフォルトのカット・アクションまたはコピー・アクションで呼び出されます。転送は、
java.awt.datatransfer
メカニズムを使用して実行され、開発者がそれ以上処理を追加する必要はありません。 データ転送がすべて完了すると、このメソッドが復帰する前に、発生したアクションでexportDone
メソッドが呼び出されます。 データをクリップボードに貼り付けようとしたときにクリップボードが使用できない場合は、Clipboard.setContents(Transferable, ClipboardOwner)
によってスローされたIllegalStateException
がこのメソッドを介して伝播されます。 ただし、一貫性を保つためにexportDone
はまずNONE
というアクションで呼び出されます。- パラメータ:
comp
- 転送されるデータを保持するコンポーネント。TransferHandler
の共有を可能にするために提供されるclip
- データの転送先のクリップボードaction
- 要求された転送アクション。値はCOPY
またはMOVE
。実行される操作は、getSourceActionsによる転送機能と要求されたアクションによる転送機能の共通部分。要求されたアクションがサポートされていない場合、アクションはNONE
- 例外:
IllegalStateException
- クリップボードが現在使用できない場合- 関連項目:
Clipboard.setContents(Transferable, ClipboardOwner)
-
importData
public boolean importData(TransferHandler.TransferSupport support)クリップボードまたはドラッグ・アンド・ドロップ操作から転送します。 インポートされるTransferable
と転送されるコンポーネントはTransferSupport
に格納されています。ドラッグ・アンド・ドロップ実装は、このメソッドを呼び出す前に、転送が適切かどうか判断するために
canImport
を呼び出しますが、ペースト実装はこの処理を行いません。 このため、このメソッドの呼出し時に、ペーストのため転送を行うことができると想定することはできません。 この場合に対応するため、canImport
を明示的に呼び出すことをお勧めします。注: このメソッドに渡される
TransferSupport
オブジェクトは、メソッドが呼び出されている間だけ有効です。 このメソッドの終了後に格納される値は未定義です。- パラメータ:
support
- 転送の詳細を格納するオブジェクト。null
以外。- 戻り値:
- データがコンポーネントに挿入された場合はtrue、そうでない場合はfalse
- 例外:
NullPointerException
-support
がnull
である場合- 導入されたバージョン:
- 1.6
- 関連項目:
canImport(TransferHandler.TransferSupport)
-
importData
public boolean importData(JComponent comp, Transferable t)クリップボードまたはDNDドロップ操作からコンポーネントへ転送します。Transferable
は、コンポーネントにインポートされるデータを表します。注: Swingは、
TransferSupport
を実行する新しいバージョンのimportData
を呼び出し、次にそれがこのメソッドを呼び出します(TransferSupport
内のコンポーネントがJComponent
である場合)。 新しいバージョンは、より多くの情報を提供します。また、JFrame
やその他のJComponent
以外のコンポーネントにTransferHandler
を直接設定して使用できる唯一のバージョンでもあります。このため、開発者には、新しいバージョンを呼び出し、オーバーライドすることを奨励します。- パラメータ:
comp
- 転送を受け取るコンポーネント。TransferHandler
の共有を可能にするために提供されるt
- インポートするデータ- 戻り値:
- データがコンポーネントに挿入された場合はtrue、そうでない場合はfalse
- 関連項目:
importData(TransferHandler.TransferSupport)
-
canImport
public boolean canImport(TransferHandler.TransferSupport support)このメソッドは、開発者が転送のプロパティの設定や、転送が可能かどうかの判断をできるようにするため、ドラッグ・アンド・ドロップ操作中に繰返し呼び出されます。戻り値がtrue
の場合は、現在、指定のTransferSupport
(転送の詳細情報すべてが格納されている)によって表される転送が可能です。戻り値がfalse
の場合は、転送が拒否されます。ドラッグ・アンド・ドロップ中にドロップ位置を自動的に表示するコンポーネントの場合、転送を受け入れると、デフォルトでドロップ位置が示されます。 これを変更するには、
TransferSupport
上でsetShowDropLocation
を呼び出します。デフォルトでは、転送が受け入れられる場合、ユーザーがドラッグ・ジェスチャによって選択したドロップ・アクションが選択されます。 開発者は、これをオーバーライドして、サポートされているソース・アクションから別のアクションを選択できます。このためには、
TransferSupport
上でsetDropAction
を呼び出します。canImport
を呼び出すたびに、TransferSupport
に格納された状態が更新されます。 このため、ここで設定されたすべてのプロパティは、呼出しのたびに設定する必要があります。 ドロップ時には、importData
の呼出しの前にcanImport
が1回だけ呼び出されます。 この最後の呼出し中にTransferSupport
上で設定されたすべての状態は、importData
に格納されます。このメソッドが、ペースト操作の応答として内部で呼び出されることはありません。 このため、
importData
の実装はこのメソッドを明示的に呼び出し、このメソッドがペースト操作の適性も返すように準備することが推奨されています。注: このメソッドに渡される
TransferSupport
オブジェクトは、メソッドが呼び出されている間だけ有効です。 このメソッドの終了後に格納される値は未定義です。- パラメータ:
support
- 転送の詳細を格納するオブジェクト。null
以外。- 戻り値:
- インポートが可能な場合は
true
、そうでない場合はfalse
- 例外:
NullPointerException
-support
がnull
である場合- 導入されたバージョン:
- 1.6
- 関連項目:
importData(TransferHandler.TransferSupport)
,TransferHandler.TransferSupport.setShowDropLocation(boolean)
,TransferHandler.TransferSupport.setDropAction(int)
-
canImport
public boolean canImport(JComponent comp, DataFlavor[] transferFlavors)コンポーネントが実際に一連のデータ・フレーバのインポートを試みる前に、データ・フレーバのインポートを受け入れるかどうかを示します。注: Swingは、
TransferSupport
を実行する新しいバージョンのcanImport
を呼び出し、次にそれがこのメソッドを呼び出します(TransferSupport
内のコンポーネントがJComponent
の場合のみ)。 新しいバージョンは、より多くの情報を提供します。また、JFrame
やその他のJComponent
以外のコンポーネントにTransferHandler
を直接設定して使用できる唯一のバージョンでもあります。このため、開発者には、新しいバージョンを呼び出し、オーバーライドすることを奨励します。- パラメータ:
comp
- 転送を受け取るコンポーネント。TransferHandler
の共有を可能にするために提供されるtransferFlavors
- 有効なデータ形式- 戻り値:
- データをコンポーネントに挿入できる場合はtrue、そうでない場合はfalse
- 関連項目:
canImport(TransferHandler.TransferSupport)
-
getSourceActions
public int getSourceActions(JComponent c)ソースでサポートされている転送アクションの種類を返します。返される値は、COPY
、MOVE
、およびLINK
のビット単位の論理和です。可変ではないモデルも存在します。このようなモデルでは
MOVE
の転送操作は通知されません。NONE
を返すことにより、コンポーネントからの転送を無効化します。- パラメータ:
c
- 転送されるデータを保持するコンポーネント。TransferHandler
の共有を可能にするために提供される- 戻り値:
- 転送プロパティが見つかった場合は
COPY
、そうでない場合はNONE
を返す
-
getVisualRepresentation
public Icon getVisualRepresentation(Transferable t)転送の外観を設定するオブジェクトを返します。 これは、ドラッグ操作の実行中にフィードバックを提供する目的と、視覚表現されるクリップボード実装内の転送を表す目的の両方で使用できます。Icon
インタフェースの実装では、グラフィック・クリップまたはアルファ・レベルを変更しないでください。 アイコンの実装は矩形である必要はなく、境界の矩形をすべてペイントする必要もありません。また、アイコンのペイント・メソッドを呼び出すロジックでは、すべてのビットがペイントされていることを想定してはいけません。このメソッドの戻り値としてはnull
も許され、ビジュアル表現が設定されていないことを示します。 その場合、呼出しロジックではTransferableを自由に表すことができます。null
が返された場合、デフォルトのSwingロジックではアルファ合成されたドラッグ・アニメーションは実行されません。- パラメータ:
t
- 転送されるデータ。createTransferable
メソッドによって作成されたものと想定される- 戻り値:
- デフォルトのビジュアル表現がないことを示す
null
-
createTransferable
protected Transferable createTransferable(JComponent c)データ転送のソースとして使用するTransferable
を作成します。 転送するデータの表現を返します。コンポーネントのプロパティがnull
の場合はnull
を返します- パラメータ:
c
- 転送されるデータを保持するコンポーネント。TransferHandler
の共有を可能にするために提供される- 戻り値:
- 転送するデータの表現。
c
に関連付けられたプロパティがnull
の場合はnull
-
exportDone
protected void exportDone(JComponent source, Transferable data, int action)データのエクスポート後に呼び出されます。 このメソッドは、アクションがMOVE
の場合に転送されたデータを削除します。MOVE
はこの実装にサポートされるアクションでないため、このメソッドの実装では何も行われません。getSourceActions
にはMOVE
が含まれません。- パラメータ:
source
- データのソースであったコンポーネントdata
- 転送されたデータ。アクションがNONE
である場合はnull。action
- 実際に実行されたアクション
-