Java 工具类---操作系统剪贴板

女爷i 2022-05-22 02:04 245阅读 0赞

之前网上找到的一个工具类具体出处我忘了。
这里贴上源代码:

  1. package clipboard.util;
  2. import java.awt.Image;
  3. import java.awt.Toolkit;
  4. import java.awt.datatransfer.Clipboard;
  5. import java.awt.datatransfer.DataFlavor;
  6. import java.awt.datatransfer.StringSelection;
  7. import java.awt.datatransfer.Transferable;
  8. import java.awt.datatransfer.UnsupportedFlavorException;
  9. import java.awt.image.BufferedImage;
  10. import java.io.IOException;
  11. public class SysClipboardUtil {
  12. /** * 从剪贴板中获取文本字符串。 * @return 剪贴板中的文本。 */
  13. public static String getSysClipboardText()
  14. {
  15. String ret = "";
  16. Clipboard sysClip = Toolkit.getDefaultToolkit().getSystemClipboard();
  17. // 获取剪切板中的内容
  18. Transferable clipTf = sysClip.getContents(null);
  19. if (clipTf != null)
  20. {
  21. // 检查内容是否是文本类型
  22. if (clipTf.isDataFlavorSupported(DataFlavor.stringFlavor))
  23. {
  24. try
  25. {
  26. ret = (String) clipTf
  27. .getTransferData(DataFlavor.stringFlavor);
  28. } catch (Exception e)
  29. {
  30. e.printStackTrace();
  31. }
  32. }
  33. }
  34. return ret;
  35. }
  36. /** * 把字符串写到系统剪贴板。 * @param writeMe 要写入剪贴板的文本 */
  37. public static void setSysClipboardText(String writeMe)
  38. {
  39. Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
  40. Transferable tText = new StringSelection(writeMe);
  41. clip.setContents(tText, null);
  42. }
  43. /** * 从系统剪贴板获取图片。 * @return 系统剪贴板里面的图片。 */
  44. public static BufferedImage getImageFromClipboard()
  45. {
  46. try
  47. {
  48. Clipboard sysc = Toolkit.getDefaultToolkit().getSystemClipboard();
  49. Transferable cc = sysc.getContents(null);
  50. if (cc == null)
  51. return null;
  52. else if (cc.isDataFlavorSupported(DataFlavor.imageFlavor))
  53. return (BufferedImage) cc
  54. .getTransferData(DataFlavor.imageFlavor);
  55. } catch (Exception e)
  56. {
  57. e.printStackTrace();
  58. }
  59. return null;
  60. }
  61. /** * 把图片复制到剪贴板中。 * @param image 要复制到剪贴板的图片。 */
  62. public static void setClipboardImage(final Image image)
  63. {
  64. Transferable trans = new Transferable()
  65. {
  66. public DataFlavor[] getTransferDataFlavors()
  67. {
  68. return new DataFlavor[]
  69. {DataFlavor.imageFlavor};
  70. }
  71. public boolean isDataFlavorSupported(DataFlavor flavor)
  72. {
  73. return DataFlavor.imageFlavor.equals(flavor);
  74. }
  75. public Object getTransferData(DataFlavor flavor)
  76. throws UnsupportedFlavorException, IOException
  77. {
  78. if (isDataFlavorSupported(flavor))
  79. return image;
  80. throw new UnsupportedFlavorException(flavor);
  81. }
  82. };
  83. Toolkit.getDefaultToolkit().getSystemClipboard().setContents(trans,
  84. null);
  85. }
  86. }

使用该类可以往系统剪贴板中写入文字,获取文字。写入图片,获取图片。该工具对应jar包地址:
https://download.csdn.net/download/qq_21808961/10449878

发表评论

表情:
评论列表 (有 0 条评论,245人围观)

还没有评论,来说两句吧...

相关阅读