And*_*dré 5 java macos copy-paste
我目前正在研究可以将文件复制到系统剪贴板的Java代码.
对于Windows和Linux,我已经开始工作了.对于OSX,我尝试了几种口味,但Finder中的"粘贴"操作从未激活过.
知道Finder需要哪些DataFlavor设置?
二手口味:
DataFlavor.javaFileListFlavor
URILIST_FLAVOR = new DataFlavor( "text/uri-list" );
XFILELIST_FLAVOR = new DataFlavor( "application/x-java-file-list" );
GNOMEFILELIST_FLAVOR = new DataFlavor( "x-special/gnome-copied-files" );
Run Code Online (Sandbox Code Playgroud)
返回flavor的数据的方法:
public Object getTransferData( DataFlavor flavor ) throws UnsupportedFlavorException, IOException {
if( FILELIST_FLAVOR.equals( flavor ) ) {
if( List.class == flavor.getRepresentationClass() ) {
return Arrays.asList( files );
} else if( InputStream.class == flavor.getRepresentationClass() ) {
return getStreamData( files, null );
}
} else if( DataFlavor.javaFileListFlavor.equals( flavor ) ) {
if( List.class == flavor.getRepresentationClass() ) {
return locallist;
} else if( InputStream.class == flavor.getRepresentationClass() ) {
return getStreamData( files, null );
}
} else if( URILIST_FLAVOR.equals( flavor ) ) {
if( List.class == flavor.getRepresentationClass() ) {
return Arrays.asList( files );
} else if( InputStream.class == flavor.getRepresentationClass() ) {
return getStreamData( files, null );
}
} else if( GNOMEFILELIST_FLAVOR.equals( flavor ) ) {
if( List.class == flavor.getRepresentationClass() ) {
return Arrays.asList( files );
} else if( InputStream.class == flavor.getRepresentationClass() ) {
// FIXME support cut and copy
return getStreamData( files, "copy" );
}
} else if( XFILELIST_FLAVOR.equals( flavor ) ) {
if( List.class == flavor.getRepresentationClass() ) {
return locallist;
} else if( InputStream.class == flavor.getRepresentationClass() ) {
return getStreamData( files, null );
}
}
throw new UnsupportedFlavorException( flavor );
}
Run Code Online (Sandbox Code Playgroud)
谢谢,安德烈
小智 0
也许你应该尝试DataFlavor#javaFileListFlavor。
API 文档摘录:
DataFlavor#javaFileListFlavor(链接)
为了将文件列表传输到 Java(以及底层平台)或从 Java(以及底层平台)传输文件列表,需要使用此类型/子类型的 DataFlavor 和 java.util.List 的表示类。列表中的每个元素都需要/保证为 java.io.File 类型。
| 归档时间: |
|
| 查看次数: |
1100 次 |
| 最近记录: |