3

私たちのプロジェクトでは、データをクリップボードにコピーし、後で他の場所で使用できる単純な機能を開発しています。かなり単純です。モーダル ウィンドウがポップアップし、関数によってエクスポートされたすべてのファイルのリストが SWT.List に表示されます。このウィンドウには、「OK」と「クリップボードにコピー」という 2 つのボタンがあります。OK ボタンは、shell.dispose() を使用してウィンドウを閉じます (Shell.close() も試しました)。クリップボードの機能は次のようになります。

Clipboard clipboard = new Clipboard(Display.getDefault());
TextTransfer transfer = TextTransfer.getInstance();
String lines = "";
for (String line : list.getItems())
{
    lines += line;
    lines +="\n";
}
clipboard.setContents(new Object[] { lines }, new TextTransfer[] { transfer });

ファイルのエクスポートが完了すると、ボタンが有効になります。クリップボードへのコピーとデータの使用は機能していますが、このボタンをクリックして最初にこのデータをどこかに貼り付けた場合のみです。「OK」をクリックしてウィンドウを閉じると、データはまだクリップボードにあります。しかし、「コピー」ボタンをクリックして、このデータをどこにも貼り付けずに「OK」をクリックすると、クリップボードから失われます。

とにかくクリップボードにデータを保持する方法はありますか?

4

1 に答える 1

3

コンテンツを設定した直後に、クリップボードを破棄する必要があるのではないでしょうか? つまり、Clipboard インスタンスを使用する必要がなくなったら、Clipboard クラスの javadoc に記載されているように破棄します。それが役立つかどうかはわかりませんが、試すことができます... http://www.vogella.com/blog/2009/09/04/swt-clipboard/も参照してください

于 2012-07-24T10:43:25.310 に答える