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」を参照してください。
| 修飾子と型 | クラス | 説明 |
|---|---|---|
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) |
ドラッグするイメージのアンカー・オフセットを設定します。
|
public static final int NONE
intです。public static final int COPY
intです。 データがクリップボードにコピーされたとき、またはドラッグ・アンド・ドロップ操作で別の場所へコピーされたときに使用されます。 public static final int MOVE
intです。 データがクリップボードに移動(カット)されたとき、またはドラッグ・アンド・ドロップ操作で別の場所へ移動されたときに使用されます。 public static final int COPY_OR_MOVE
intです。public static final int LINK
intです。 この値を使って、ドラッグ・アンド・ドロップ操作でデータがリンクされるように指定できます。 DnDConstants.ACTION_LINK, 定数フィールド値public TransferHandler(String property)
property - 転送するプロパティの名前。転送ハンドラに関連付けられているプロパティがない場合はnullも可(たとえばその他の種類の転送を実行するサブクラス)protected TransferHandler()
public static Action getCutAction()
Actionを返します。 実行すると、このアクションは、コンポーネントのTransferHandler上でMOVEアクションを指定してexportToClipboardを呼び出すことにより、ActionEventのJComponentソースを操作します。 Actionpublic static Action getCopyAction()
Actionを返します。 実行すると、このアクションは、コンポーネントのTransferHandler上でCOPYアクションを指定してexportToClipboardを呼び出すことにより、ActionEventのJComponentソースを操作します。 Actionpublic static Action getPasteAction()
Actionを返します。 実行すると、このアクションは、コンポーネントのTransferHandler上でクリップボード・コンテンツを指定してimportDataを呼び出すことにより、ActionEventのJComponentソースに影響を及ぼします。 Actionpublic void setDragImage(Image img)
img - ドラッグするイメージpublic Image getDragImage()
nullです。 public void setDragImageOffset(Point p)
nullであってはならない。 p - イメージの左上隅を基準にしたイメージのアンカー・オフセットの座標に対応するPointオブジェクトpublic Point getDragImageOffset()
Pointオブジェクト。 デフォルトではポイント(0,0)が返されます。 public void exportAsDrag(JComponent comp, InputEvent e, int action)
javax.swing.plaf.basicパッケージのさまざまなUIの実装から、このメソッドが呼び出されます。 UIのカスタム実装から呼び出して、Swingドラッグ・サポートを使用できます。 また、JComponentのサブクラスとして記述されるSwingの拡張から呼び出して、Swingドラッグ・サポートの機能を利用できます。
このメソッドの呼出しが戻る時点で転送が完了している必要はありません。つまり、このメソッドの呼出しによって、ドロップの待機が妨げられることはありません。 転送は、java.awt.dndメカニズムのSwingの実装を使用して実行され、開発者がそれ以上処理を追加する必要はありません。 転送が完了すると、exportDoneメソッドが呼び出されます。
comp - 転送されるデータを保持するコンポーネント。TransferHandlerの共有を可能にするために提供されるe - 転送をトリガーしたイベントaction - 最初に要求された転送アクション。COPY、MOVE、またはLINK。DnDシステムは、ドラッグ操作中に使用されるアクションを変更することができる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による転送機能と要求されたアクションによる転送機能の共通部分。要求されたアクションがサポートされていない場合、アクションはNONEIllegalStateException - クリップボードが現在使用できない場合Clipboard.setContents(Transferable, ClipboardOwner)public boolean importData(TransferHandler.TransferSupport support)
Transferableと転送されるコンポーネントはTransferSupportに格納されています。
ドラッグ・アンド・ドロップ実装は、このメソッドを呼び出す前に、転送が適切かどうか判断するためにcanImportを呼び出しますが、ペースト実装はこの処理を行いません。 このため、このメソッドの呼出し時に、ペーストのため転送を行うことができると想定することはできません。 この場合に対応するため、canImportを明示的に呼び出すことをお勧めします。
ノート: このメソッドに渡されるTransferSupportオブジェクトは、メソッドが呼び出されている間だけ有効です。 このメソッドの終了後に格納される値は未定義です。
support - 転送の詳細を格納するオブジェクト。null以外。NullPointerException - supportがnullである場合canImport(TransferHandler.TransferSupport)public boolean importData(JComponent comp, Transferable t)
Transferableは、コンポーネントにインポートされるデータを表します。
ノート: Swingは、TransferSupportを実行する新しいバージョンのimportDataを呼び出し、次にそれがこのメソッドを呼び出します(TransferSupport内のコンポーネントがJComponentである場合)。 新しいバージョンは、より多くの情報を提供します。また、JFrameやその他のJComponent以外のコンポーネントにTransferHandlerを直接設定して使用できる唯一のバージョンでもあります。このため、開発者には、新しいバージョンを呼び出し、オーバーライドすることを奨励します。
comp - 転送を受け取るコンポーネント。TransferHandlerの共有を可能にするために提供されるt - インポートするデータimportData(TransferHandler.TransferSupport)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、そうでない場合はfalseNullPointerException - supportがnullである場合importData(TransferHandler.TransferSupport), TransferHandler.TransferSupport.setShowDropLocation(boolean), TransferHandler.TransferSupport.setDropAction(int)public boolean canImport(JComponent comp, DataFlavor[] transferFlavors)
ノート: Swingは、TransferSupportを実行する新しいバージョンのcanImportを呼び出し、次にそれがこのメソッドを呼び出します(TransferSupport内のコンポーネントがJComponentの場合のみ)。 新しいバージョンは、より多くの情報を提供します。また、JFrameやその他のJComponent以外のコンポーネントにTransferHandlerを直接設定して使用できる唯一のバージョンでもあります。このため、開発者には、新しいバージョンを呼び出し、オーバーライドすることを奨励します。
comp - 転送を受け取るコンポーネント。TransferHandlerの共有を可能にするために提供されるtransferFlavors - 有効なデータ形式canImport(TransferHandler.TransferSupport)public int getSourceActions(JComponent c)
COPY、MOVE、およびLINKのビット単位の論理和です。
可変ではないモデルも存在します。このようなモデルではMOVEの転送操作は通知されません。 NONEを返すことにより、コンポーネントからの転送を無効化します。
c - 転送されるデータを保持するコンポーネント。TransferHandlerの共有を可能にするために提供されるCOPY、そうでない場合はNONEを返すpublic Icon getVisualRepresentation(Transferable t)
Iconインタフェースの実装では、グラフィック・クリップまたはアルファ・レベルを変更しないでください。 アイコンの実装は矩形である必要はなく、境界の矩形をすべてペイントする必要もありません。また、アイコンのペイント・メソッドを呼び出すロジックでは、すべてのビットがペイントされていることを想定してはいけません。このメソッドの戻り値としてはnullも許され、ビジュアル表現が設定されていないことを示します。 その場合、呼出しロジックではTransferableを自由に表すことができます。
nullが返された場合、デフォルトのSwingロジックではアルファ合成されたドラッグ・アニメーションは実行されません。
t - 転送されるデータ。createTransferableメソッドによって作成されたものと想定されるnullprotected Transferable createTransferable(JComponent c)
Transferableを作成します。 転送するデータの表現を返します。コンポーネントのプロパティがnullの場合はnullを返します c - 転送されるデータを保持するコンポーネント。TransferHandlerの共有を可能にするために提供されるcに関連付けられたプロパティがnullの場合はnullprotected void exportDone(JComponent source, Transferable data, int action)
MOVEの場合に転送されたデータを削除します。
MOVEはこの実装にサポートされるアクションでないため、このメソッドの実装では何も行われません。getSourceActionsにはMOVEが含まれません。
source - データのソースであったコンポーネントdata - 転送されたデータ。アクションがNONEである場合はnull。action - 実際に実行されたアクション バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。