JavaTM 2 Platform
Standard Ed. 5.0

javax.swing
クラス TransferHandler

java.lang.Object
  上位を拡張 javax.swing.TransferHandler
すべての実装されたインタフェース:
Serializable

public class TransferHandler
extends Object
implements Serializable

このクラスは、Swing コンポーネントに対する 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 int COPY
          「copy」の転送アクションを表す int です。
static int COPY_OR_MOVE
          「copy」または「move」のソースアクション機能を表す int です。
static int MOVE
          「move」の転送アクションを表す int です。
static int NONE
          転送アクションが行われないことを表す int です。
 
コンストラクタの概要
protected TransferHandler()
          サブクラスの簡易コンストラクタです。
  TransferHandler(String property)
          クリップボードまたはドラッグ&ドロップ操作によってコンポーネント間の Java Bean プロパティを転送できる転送ハンドラを構築します。
 
メソッドの概要
 boolean canImport(JComponent comp, DataFlavor[] transferFlavors)
          コンポーネントが実際に一連のデータフレーバのインポートを試みる前に、データフレーバのインポートを受け入れるかどうかを示します。
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()
          「copy」操作のように動作する Action を返します。
static Action getCutAction()
          「cut」操作のように動作する Action を返します。
static Action getPasteAction()
          「paste」操作のように動作する Action を返します。
 int getSourceActions(JComponent c)
          ソースがサポートする転送アクションの種類を返します。
 Icon getVisualRepresentation(Transferable t)
          転送の外観を設定するオブジェクトを返します。
 boolean importData(JComponent comp, Transferable t)
          クリップボードまたは DND ドロップ操作からコンポーネントへ転送します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

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 です。

関連項目:
定数フィールド値
コンストラクタの詳細

TransferHandler

public TransferHandler(String property)
クリップボードまたはドラッグ&ドロップ操作によってコンポーネント間の Java Bean プロパティを転送できる転送ハンドラを構築します。

パラメータ:
property - 転送するプロパティの名前。別の種類の転送を処理するサブクラスなど、転送ハンドラに関連付けられたプロパティがない場合は null

TransferHandler

protected TransferHandler()
サブクラスの簡易コンストラクタです。

メソッドの詳細

getCutAction

public static Action getCutAction()
「cut」操作のように動作する Action を返します。つまり、ActionEvent のソースである JComponent に関連付けられた TransferHandler で、MOVE 引数を使用して exportToClipboard を呼び出します。

戻り値:
cut Action

getCopyAction

public static Action getCopyAction()
「copy」操作のように動作する Action を返します。つまり、ActionEvent のソースである JComponent に関連付けられた TransferHandler で、COPY 引数を使用して exportToClipboard を呼び出します。

戻り値:
cut Action

getPasteAction

public static Action getPasteAction()
「paste」操作のように動作する Action を返します。つまり、ActionEvent のソースである JComponent に関連付けられた TransferHandler で、importData を呼び出します。

戻り値:
cut Action

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 で、ドラッグ操作中に変更されることもある

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(JComponent comp,
                          Transferable t)
クリップボードまたは DND ドロップ操作からコンポーネントへ転送します。Transferable は、コンポーネントにインポートされるデータを表します。

パラメータ:
comp - 転送を受信するコンポーネント。複数のコンポーネントで TransferHandler を共有するために使用する引数
t - インポートするデータ
戻り値:
データがコンポーネントに挿入された場合は true、そうでない場合は false

canImport

public boolean canImport(JComponent comp,
                         DataFlavor[] transferFlavors)
コンポーネントが実際に一連のデータフレーバのインポートを試みる前に、データフレーバのインポートを受け入れるかどうかを示します。

パラメータ:
comp - 転送を受信するコンポーネント。複数のコンポーネントで TransferHandlers を共有するために使用する引数
transferFlavors - 有効なデータ形式
戻り値:
データをコンポーネントに挿入できる場合は true、そうでない場合は false

getSourceActions

public int getSourceActions(JComponent c)
ソースがサポートする転送アクションの種類を返します。可変ではないモデルも存在し、そのようなモデルでは COPY の転送アクションだけを使用できます。

パラメータ:
c - 転送データを保持するコンポーネント。複数のコンポーネントで TransferHandler を共有するために使用する引数
戻り値:
転送プロパティが見つかった場合は COPY、そうでない場合は NONE。戻り値が 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 - 実際に実行されたアクション

JavaTM 2 Platform
Standard Ed. 5.0

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

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