Tôi đang sử dụng mã này trong một ứng dụng Java Swing để sao chép các file vào clipboard:Làm thế nào để cắt một tệp vào clipboard trong Java?
final List<File> files = new ArrayList<File>();
// ... code to fill list omitted ... //
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(
new Transferable() {
@Override
public DataFlavor[] getTransferDataFlavors() {
return new DataFlavor[] { DataFlavor.javaFileListFlavor };
}
@Override
public boolean isDataFlavorSupported(DataFlavor flavor) {
return DataFlavor.javaFileListFlavor.equals(flavor);
}
@Override
public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException {
return files;
}
}, null
);
Nó hoạt động, trong đó tôi có thể đi đến Windows Explorer và Ctrl + V và các tập tin bật lên (hy vọng nó hoạt động trong các hệ điều hành khác, mặc dù không được kiểm tra). Tôi cũng muốn thực hiện cũng cắt nhưng tôi không biết cách để hệ thống biết rằng đó là hành động hoặc cách nhận phản hồi cho từng tệp được sao chép thành công để tôi có thể xóa nó khỏi vị trí ban đầu của nó bằng tay.
Nếu điều này là không thể, bất kỳ đề xuất nào về cách tôi nên xử lý việc này? Tôi cũng muốn có thể cắt dán & trong ứng dụng (riêng biệt để trao đổi tệp với trình khám phá hệ điều hành).
Tôi không nghĩ rằng có thể cắt trong Java. – rjdkolb
Ồ, mã hoạt động tốt trong Linux Kubuntu (KDE) ngoại trừ thực tế là chương trình Java không được thoát trước khi người dùng dán tập tin. đọc thêm tại đây: http://en.wikipedia.org/wiki/X_Window_selection – rjdkolb