私たちのプロジェクトでは、データをクリップボードにコピーし、後で他の場所で使用できる単純な機能を開発しています。かなり単純です。モーダル ウィンドウがポップアップし、関数によってエクスポートされたすべてのファイルのリストが 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」をクリックすると、クリップボードから失われます。
とにかくクリップボードにデータを保持する方法はありますか?