- java.lang.Object
-
- javafx.scene.input.Clipboard
-
- 直系の既知のサブクラス:
Dragboard
public class Clipboard extends Object
切取り、コピー、貼付けなどの操作中にデータを配置できる、オペレーティング・システムのクリップボードを表します。一般的なシステム・クリップボードにアクセスするには、次のコードを使用します。
Clipboard clipboard = Clipboard.getSystemClipboard();
アプリケーションにおけるシステム・クリップボードのインスタンスは常に1つのみであるため、必要に応じてそのインスタンスへの参照を隠すという選択は、完全に許容されます。
クリップボードは、任意の1つの時点で、概念的に単一のアイテムがクリップボード上にあるという概念に基づいて動作しますが、アイテムは様々なフォーマットでクリップボードに配置される可能性があります。 たとえば、ユーザーがHTMLエディタでテキストを選択し、[Ctrl]を押しながら[C]を押すか、または[Cmd]を押しながら[C]を押して、コピーする場合があります。 この場合は、同じテキストをHTMLとプレーン・テキストの両方でクリップボードから利用できる可能性があります。 クリップボードにはデータの2つのコピーがありますが、両方が同じデータを表します。
コンテンツは、
setContent(java.util.Map<javafx.scene.input.DataFormat, java.lang.Object>)
メソッドを使用して、クリップボードに指定されます。 最初にClipboardContentオブジェクトを構築して、次に、setContentを起動します。 setContentが呼び出されるたびに、クリップボードの以前のデータがクリアされて、この新しいコンテンツに置き換えられます。final Clipboard clipboard = Clipboard.getSystemClipboard(); final ClipboardContent content = new ClipboardContent(); content.putString("Some text"); content.putHtml("<b>Some</b> text"); clipboard.setContent(content);
ClipboardContent
クラスは、クリップボードに追加される一般的なデータ型を処理するための、コンビニエンス・メソッドを使用した単なるマップです。クリップボード上には同じデータの複数の表現が存在する可能性があり、かつ、異なるコンテンツ・タイプを処理する機能がアプリケーションごとに異なるため、外部アプリケーションで容易に使用できるように、クリップボード上には、現実的な範囲でできるかぎり多くのデータ表現を配置することが重要です。 オペレーティング・システムの便利な機能によって、複数のタイプが追加される場合があります。 たとえば、Macでは、RTFタイプを指定したときにプレーン・テキスト文字列が設定される場合があります。 このことがどのように、どのような状況で発生するかは、この仕様の範囲外であるため、OSのドキュメントを参照してください。
クリップボードからデータを読み取るときは、まず、サポートされるうちで最もリッチなタイプを探すことが重要です。 たとえば、イメージとメディア・フォーマットの埋込みをサポートしているテキスト・ドキュメントがある場合は、クリップボードからコンテンツを貼り付けるときに、まずコンテンツをメディアまたはイメージとして表現できるかどうかをチェックする必要があります。 表現できない場合は、RTF、HTML、または該当するドキュメント・タイプでサポートされている、なんらかのリッチ・テキスト形式をチェックします。 そうでない場合は、単に文字列を取ることができます。
または、たとえばプレーン・テキストのドキュメントがある場合は、単に文字列表現を取得して、それを使用します(利用可能な場合)。 クリップボードがhasHtmlか、hasStringかをチェックできます。
if (clipboard.hasString()) { ... }
共通または組込みのタイプに加えて、任意のデータ(シリアライズ可能であることを想定)をクリップボードに入れることができます。
コンテンツ・タイプは、DataFormatオブジェクトによって定義されます。 DataFormatクラスにより、不変のオブジェクトが定義され、共通のDataFormatタイプには多数のstatic finalフィールドがあります。 また、アプリケーション固有のDataFormatタイプを宣言して使用することもできます。 次の2つのメソッドは同等です(2つ目の呼出しは1つ目よりも優先されます)。
ClipboardContent content = new ClipboardContent(); content.putString("some text"); content.put(DataFormat.PLAIN_TEXT, "other text");
独自のウィンドウ・システムを持たない埋込みプラットフォームでは、Clipboard.getSystemClipboard()から返されるクリップボードにJavaFXアプリケーション外からアクセスできない場合があります。
セキュリティ・マネージャが存在する場合、Clipboard.getSystemClipboard()から返されたクリップボードがJavaFXアプリケーションの外部からアクセスできるようにするには、アプリケーションに
FXPermission
"accessClipboard"が必要です。 以前のバージョンのJDKとの互換性のため、同等のAWTPermission
"accessClipboard"は、JavaFXアプリケーションの外部からFXクリップボードにアクセスできるようにします。アプリケーションにパーミッションがない場合、またはプラットフォームが共有クリップボードをサポートしていない場合、Clipboard.getSystemClipboard()によって返されたクリップボードは、1つのJavaFXアプリケーションの異なる部分間のデータ交換に使用できますが、複数のアプリケーション間でデータを交換することはできません。
- 導入されたバージョン:
- JavaFX 2.0
-
-
メソッドのサマリー
すべてのメソッド 静的メソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 void
clear()
クリップボードからすべてのコンテンツをクリアします。Object
getContent(DataFormat dataFormat)
このクリップボードに格納された特定のタイプのコンテンツ、またはこのタイプのコンテンツがない場合はnullを返します。Set<DataFormat>
getContentTypes()
クリップボードで登録されたデータを関連付けたこのクリップボード・インスタンスのDataFormatタイプのセットを取得します。List<File>
getFiles()
以前に登録されたファイルのリストをクリップボードから取得します。String
getHtml()
以前に登録されたHTMLテキスト文字列をクリップボードから取得します。Image
getImage()
以前に登録されたイメージをクリップボードから取得します。String
getRtf()
以前に登録されたRTFテキスト文字列をクリップボードから取得します。String
getString()
以前に登録されたプレーン・テキスト文字列をクリップボードから取得します。static Clipboard
getSystemClipboard()
データを格納および取得できる、現在のシステム・クリップボードを取得します。String
getUrl()
以前に登録されたURL文字列をクリップボードから取得します。boolean
hasContent(DataFormat dataFormat)
このクリップボードに特定のDataFormatタイプのコンテンツがあるかどうかをテストします。boolean
hasFiles()
ファイルのリスト(DataFormat.FILES)がこのクリップボードで登録されているかどうかを取得します。boolean
hasHtml()
HTMLテキスト文字列(DataFormat.HTML)がこのクリップボードで登録されているかどうかを取得します。boolean
hasImage()
イメージ(DataFormat.IMAGE)がこのクリップボードで登録されているかどうかを取得します。boolean
hasRtf()
RTF文字列(DataFormat.RTF)がこのクリップボードで登録されているかどうかを取得します。boolean
hasString()
プレーン・テキスト文字列(DataFormat.PLAIN_TEXT)がこのクリップボードで登録されているかどうかを取得します。boolean
hasUrl()
url文字列(DataFormat.URL)がこのクリップボードで登録されているかどうかを取得します。boolean
setContent(Map<DataFormat,Object> content)
クリップボードにコンテンツを入れます。
-
-
-
メソッドの詳細
-
getSystemClipboard
public static Clipboard getSystemClipboard()
データを格納および取得できる、現在のシステム・クリップボードを取得します。 JavaFXアプリケーションのシステム・クリップボードは常に1つのみです。- 戻り値:
- 切取り/コピー/貼付けの操作に使用される、単一のシステム・クリップボード
-
clear
public final void clear()
クリップボードからすべてのコンテンツをクリアします。 その後、他のコンテンツをクリップボードに入れる前に、getContentTypes()
を呼び出すと、空のセットが返されます。
-
getContentTypes
public final Set<DataFormat> getContentTypes()
クリップボードで登録されたデータを関連付けたこのクリップボード・インスタンスのDataFormatタイプのセットを取得します。 このセットは常にnull以外になり、不変です。 その後クリップボードが変更された場合に、この返されるセットは更新されません。- 戻り値:
- null以外の不変のコンテンツ・タイプのセット。
-
setContent
public final boolean setContent(Map<DataFormat,Object> content)
クリップボードにコンテンツを入れます。 呼び出した場合は、常に、以前のすべてのコンテンツがクリップボードからクリアされて、提供されたClipboardContentマップで指定されたコンテンツに置き換えられます。- パラメータ:
content
- クリップボードに入れるコンテンツ。 nullの場合、クリップボードは単にクリアされ、新しいコンテンツは追加されません。- 戻り値:
- 成功した場合はtrue、コンテンツの追加に失敗した場合はfalse。
- 例外:
NullPointerException
- なんらかの形式でnullのデータ参照が渡された場合
-
getContent
public final Object getContent(DataFormat dataFormat)
このクリップボードに格納された特定のタイプのコンテンツ、またはこのタイプのコンテンツがない場合はnullを返します。- パラメータ:
dataFormat
- フォーマット型- 戻り値:
- このタイプに関連付けられたコンテンツ、または存在しない場合はnull
-
hasContent
public final boolean hasContent(DataFormat dataFormat)
このクリップボードに特定のDataFormatタイプのコンテンツがあるかどうかをテストします。- パラメータ:
dataFormat
- フォーマット型- 戻り値:
- このクリップボードにこのタイプのコンテンツがある場合はtrue
-
hasString
public final boolean hasString()
プレーン・テキスト文字列(DataFormat.PLAIN_TEXT)がこのクリップボードで登録されているかどうかを取得します。- 戻り値:
hasContent(DataFormat.PLAIN_TEXT)
でtrueが返される場合はtrue、それ以外の場合はfalse
-
getString
public final String getString()
以前に登録されたプレーン・テキスト文字列をクリップボードから取得します。 これは、getContent(DataFormat.PLAIN_TEXT)
を起動することと同等です。 そのようなエントリが存在しない場合は、nullが返されます。- 戻り値:
- DataFormat.PLAIN_TEXTに関連付けられたクリップボードの文字列、または存在しない場合はnull。
-
hasUrl
public final boolean hasUrl()
url文字列(DataFormat.URL)がこのクリップボードで登録されているかどうかを取得します。- 戻り値:
- hasContent(DataFormat.URL)でtrueが返される場合はtrue、それ以外の場合はfalse
-
getUrl
public final String getUrl()
以前に登録されたURL文字列をクリップボードから取得します。 これは、getContent(DataFormat.URL)
を起動することと同等です。 そのようなエントリが存在しない場合は、nullが返されます。- 戻り値:
- DataFormat.URLに関連付けられたクリップボードの文字列、または存在しない場合はnull。
-
hasHtml
public final boolean hasHtml()
HTMLテキスト文字列(DataFormat.HTML)がこのクリップボードで登録されているかどうかを取得します。- 戻り値:
hasContent(DataFormat.HTML)
でtrueが返される場合はtrue、それ以外の場合はfalse
-
getHtml
public final String getHtml()
以前に登録されたHTMLテキスト文字列をクリップボードから取得します。 これは、getContent(DataFormat.HTML)
を起動することと同等です。 そのようなエントリが存在しない場合は、nullが返されます。- 戻り値:
- DataFormat.HTMLに関連付けられたクリップボードの文字列、または存在しない場合はnull。
-
hasRtf
public final boolean hasRtf()
RTF文字列(DataFormat.RTF)がこのクリップボードで登録されているかどうかを取得します。- 戻り値:
- hasContent(DataFormat.RTF)でtrueが返される場合はtrue、それ以外の場合はfalse
-
getRtf
public final String getRtf()
以前に登録されたRTFテキスト文字列をクリップボードから取得します。 これは、getContent(DataFormat.RTF)
を起動することと同等です。 そのようなエントリが存在しない場合は、nullが返されます。- 戻り値:
- DataFormat.RTFに関連付けられたクリップボードの文字列、または存在しない場合はnull。
-
hasImage
public final boolean hasImage()
イメージ(DataFormat.IMAGE)がこのクリップボードで登録されているかどうかを取得します。- 戻り値:
- hasContent(DataFormat.IMAGE)でtrueが返される場合はtrue、それ以外の場合はfalse
-
getImage
public final Image getImage()
以前に登録されたイメージをクリップボードから取得します。 これは、getContent(DataFormat.IMAGE)
を起動することと同等です。 そのようなエントリが存在しない場合は、nullが返されます。- 戻り値:
- DataFormat.IMAGEに関連付けられたクリップボードのイメージ、または存在しない場合はnull。
-
hasFiles
public final boolean hasFiles()
ファイルのリスト(DataFormat.FILES)がこのクリップボードで登録されているかどうかを取得します。- 戻り値:
- hasContent(DataFormat.FILES)でtrueが返される場合はtrue、それ以外の場合はfalse
-
-