|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjavax.swing.TransferHandler
public class TransferHandler
このクラスは、Swing コンポーネントに対する 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)
このメソッドは、開発者が転送のプロパティーの設定や、転送が可能かどうかの判断をできるようにするため、ドラッグ&ドロップ操作中に繰り返し呼び出されます。 |
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 を返します。 |
static Action |
getPasteAction()
クリップボードからの貼り付け操作を実行する Action を返します。 |
int |
getSourceActions(JComponent c)
ソースでサポートされている転送アクションの種類を返します。 |
Icon |
getVisualRepresentation(Transferable t)
転送の外観を設定するオブジェクトを返します。 |
boolean |
importData(JComponent comp,
Transferable t)
クリップボードまたは DND ドロップ操作からコンポーネントへ転送します。 |
boolean |
importData(TransferHandler.TransferSupport support)
クリップボードまたはドラッグ&ドロップ操作から転送します。 |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| フィールドの詳細 |
|---|
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 ソースに影響を及ぼします。
Action
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 による転送機能と要求されたアクションによる転送機能の共通部分。 要求されたアクションがサポートされていない場合、 アクションは NONE
IllegalStateException - クリップボードが現在使用できない場合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 は、このメソッドを呼び出します (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、そうでない場合は false
NullPointerException - support が null の場合importData(TransferHandler.TransferSupport),
TransferHandler.TransferSupport.setShowDropLocation(boolean),
TransferHandler.TransferSupport.setDropAction(int)
public boolean canImport(JComponent comp,
DataFlavor[] transferFlavors)
注:Swing は、TransferSupport を実行する新しいバージョンの canImport を呼び出します。TransferSupport は、このメソッドを呼び出します (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 の場合は null
protected void exportDone(JComponent source,
Transferable data,
int action)
MOVE の場合に転送されたデータを削除します。
MOVE はこの実装にサポートされるアクションでないため、このメソッドの実装では何も行われません。getSourceActions には MOVE が含まれません。
source - データのソースであったコンポーネントdata - 転送されたデータ。アクションが NONE である場合は nullaction - 実際に実行されたアクション
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。