Groovyでクリップボード操作

2019-01-21Groovy, Java

Groovy Language でしかできないわけではないのですが、 クリップボードを操作するためのスクリプト(クラス)を作成してみました。

前提条件

Groovy がインストールされていることを確認

# 以下のコマンドでバージョンが表示されればインストールされている
$ groovy -v

手順

1.クリップボード操作クラスを作成

  • カレントディレクトリに GClipBoard.groovy を作成
import java.awt.Toolkit
import java.awt.datatransfer.Clipboard
import java.awt.datatransfer.DataFlavor
import java.awt.datatransfer.StringSelection
import java.awt.datatransfer.Transferable
import java.awt.datatransfer.UnsupportedFlavorException
import java.io.IOException

class GClipBoard {
    def clipboard = Toolkit.getDefaultToolkit().getSystemClipboard()

    public void setText(sendStr) {
        def ss = new StringSelection(sendStr)
        clipboard.setContents(ss, ss)
    }

    public getText() {
        def recieveStr = ""

        try {
            Transferable recive = clipboard.getContents(null)
            recieveStr = (String) recive.getTransferData(DataFlavor.stringFlavor)
        } catch (Exception e) {
            recieveStr = ""
        }

        return recieveStr
    }
}

2.GClipBoard クラスを利用するメイン処理を作成

  • カレントディレクトリに main.groovy を作成
    • ポイントは先程作った GClipBoard.groovy ファイルと同じディレクトリに作成
    • 余談ですが、GroovyのスクリプトはJavaのようにクラスを定義する必要はなく、したがってクラス名に合わせたファイル名にする必要もありません。
def clipboard = new GClipBoard()

def text = clipboard.text

println "クリップの内容は・・・[${text}] でした。"

実行

コマンドラインから実行してみる。

$ groovy main.groovy
クリップの内容は・・・[ゲンゾウ] でした。

感想

意外と簡単にクリップボード操作が可能です。

2019-01-21Groovy, Java