JAvaオペレーティングシステムのクリップボードClipboardおよびカスタムクリップボード
2702 ワード
システムクリップ:
システムクリップボードは、一般的にStringテキストタイプとImageイメージタイプをサポートします.
Stringテキストタイプ
挿入:
取得:
カスタムクリップボード:
まず、データクラスを書く必要があります.
次に、値を設定します.
取得値:
システムクリップボードは、一般的にStringテキストタイプとImageイメージタイプをサポートします.
Stringテキストタイプ
挿入:
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();//
String str = " ";//
StringSelection selection = new StringSelection(str);// String
clipboard.setContents(selection, selection);//
取得:
Transferable content = clipboard.getContents(null);//
if (content.isDataFlavorSupported(DataFlavor.stringFlavor)) {//
String text = (String) content.getTransferData(DataFlavor.stringFlavor);//
if (text == null) {
return;
}
System.out.println(text);
}
カスタムクリップボード:
まず、データクラスを書く必要があります.
public class TestSelection implements Transferable, ClipboardOwner {
public static final DataFlavor rangeFlavor = new DataFlavor(RangeDataModel.class, "Report Range");//class java
private static final DataFlavor[] flavors = { rangeFlavor };
private Object data;
public TestSelection(Object data) {
this.data = data;
}
@Override
public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException {
if (flavor.equals(flavors[RANGE])) {
return data;
} else {
throw new UnsupportedFlavorException(flavor);
}
}
@Override
public DataFlavor[] getTransferDataFlavors() {
return (DataFlavor[]) flavors.clone();
}
@Override
public boolean isDataFlavorSupported(DataFlavor flavor) {
for (int i = 0; i < flavors.length; i++) {
if (flavor.equals(flavors[i])) {
return true;
}
}
return false;
}
@Override
public void lostOwnership(Clipboard clipboard, Transferable contents) {
// TODO Auto-generated method stub
}
}
次に、値を設定します.
Clipboard clipboard = new Clipboard("clipboardName");//
ReportSelection content = new ReportSelection(data);// data java
clipboard.setContents(content, null);
取得値:
Transferable content = clipboard.getContents(null);// null
if (content.isDataFlavorSupported(ReportSelection.rangeFlavor)) {
RangeDataModel data = (RangeDataModel) content.getTransferData(ReportSelection.rangeFlavor);
System.out.println(data);
}