java - swing是否可以知道剪贴板中复制的内容是否是使用 awt.Toolkit 和剪贴板中的Clipboard的mp3文件

  显示原文与译文双语对照的内容
105 3

I background,background,monitors,monitors,monitors,monitors,monitors,monitors,monitors,monitors,monitors,monitors,monitors,monitors,monitors,monitors,monitors等。

{
 Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
 if (cb.isDataFlavorAvailable(DataFlavor.javaFileListFlavor))
 {
 try {
 String name =""+cb.getData(DataFlavor.javaFileListFlavor);
 boolean found = false;
 if (name.toLowerCase().endsWith(".mp3]"))
 {
 System.out.println("Is MP3");
 found = true;
 }
 if (!found)
 {
 System.out.println("Is not MP3");
 }
 }
 catch(UnsupportedFlavorException ex)
 {
 ex.printStackTrace();
 }
 catch(IOException ex)
 {
 ex.printStackTrace();
 }
 }
 }
时间:原作者:0个回答

142 4

基本上是,你需要检查 Clipboard的内容,看看它是否支持 DataFlavor.javaFileListFlavorDataFlavor如果需要,你需要对内容( 这是 Filejava.util.List ) 进行迭代,并确定内容的内容。

下面只检查文件是否是 .mp3 文件( 通过检查 NAME 扩展),但是不难检查 isDirectory 并进行递归检查。

Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
if (cb.isDataFlavorAvailable(DataFlavor.javaFileListFlavor)) {
 try {
 List files = (List) cb.getData(DataFlavor.javaFileListFlavor);
 boolean found = false;
 for (Object o : files) {
 if (o instanceof File) {
 File f = (File) o;
 if (f.getName().toLowerCase().endsWith(".mp3")) {
 System.out.println("I haz MP3");
 found = true;
 }
 }
 }
 if (!found) {
 System.out.println("I notz haz MP3");
 }
 } catch (UnsupportedFlavorException ex) {
 ex.printStackTrace();
 } catch (IOException ex) {
 ex.printStackTrace();
 }
}
原作者:
...