2012-04-06 11 views
1

を使用して保存された文を運ぶ - を保存するCCTRLによって+ をコピーしたすべての文を、そして現在の文を運ぶ「バッファ」操作 - いくつかの段階に特定の文バッファは、私がアプリケーション作成しようとしているのCtrl + C

例:ユーザーが「こんにちは」をコピーするC + Ctrlキーを押した彼は、任意のテキストエリア/フィールドでCTRL + Vを押すと、書かれた言葉は、「こんにちは」になり、私は書かれたステートメントを "テスト"にしたい"Hello"のnstead

質問:どのようにコピーされた文を運ぶバッファにアクセスし、Javaを使用してコンテンツを操作するのですか?

+0

OSのクリップボードの内容を完全に変更したいのですか?いいえ、結構です。 –

+2

コピー可能クリップボードへのコピー(http://stackoverflow.com/questions/3591945/copying-to-clipboard-in-java) –

+0

@ BlueRaja-DannyPhlughoeftええ、これは私が本当に欲しかったが、良い声明でそれを表現する –

答えて

1
public static void main(String[] args) throws Exception 
    { 
    // Get a reference to the clipboard 
    Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); 

    // Poll once per second for a minute 
    for (int i = 0; i < 60; i++) 
    { 
     // Null is ok, because, according to the javadoc, the parameter is not currently used 
     Transferable transferable = clipboard.getContents(null); 

     // Ensure that the current contents can be expressed as a String 
     if (transferable.isDataFlavorSupported(DataFlavor.stringFlavor)) 
     { 
     // Get clipboard contents and cast to String 
     String data = (String) transferable.getTransferData(DataFlavor.stringFlavor); 

     if (data.equals("Hello")) 
     { 
      // Change the contents of the clipboard 
      StringSelection selection = new StringSelection("Test"); 
      clipboard.setContents(selection, selection); 
     } 
     } 

     // Wait for a second before the next poll 
     try 
     { 
     Thread.sleep(1000); 
     } 
     catch (InterruptedException e) 
     { 
     // no-op 
     } 
    } 
    } 

いくつかの簡単なテスト容易性/検証のためにポーリングを追加しました。 1分に1秒間クリップボードをチェックします。私が知っている限り、イベントベースの通知を行う方法はありません(あなたが味の変更を聞いていない限り、あなたはそうではありません)ので、あなたはポーリングに悩まされていると思います。