モジュール javafx.graphics
パッケージ 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
      • getFiles

        public final List<File> getFiles()
        以前に登録されたファイルのリストをクリップボードから取得します。 これは、getContent(DataFormat.FILES)を起動することと同等です。 そのようなエントリが存在しない場合は、nullが返されます。
        戻り値:
        DataFormat.FILESに関連付けられたクリップボードのファイルのリスト、または存在しない場合はnull。