package io.loli.sc.ui.swing; import io.loli.sc.config.Config; import io.loli.sc.core.MP3Player; import io.loli.sc.core.ScreenCaptor; import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.datatransfer.UnsupportedFlavorException; import java.io.IOException; import javax.swing.SwingUtilities; public class SCLauncher { private static ConfigFrame configFrame; public static void launch(final String type) { switch (type) { case "option": SwingUtilities.invokeLater(new Runnable() { public void run() { if (configFrame == null) { configFrame = new ConfigFrame(new Config()); } else { configFrame.setVisible(true); } } }); break; case "select": new Thread(new Runnable() { @Override public void run() { try { // 如果不延迟会连菜单一起捕捉到 Thread.sleep(200); } catch (InterruptedException e1) { e1.printStackTrace(); } DragFrame df = new DragFrame(); String s = df.getResult(); if (!df.isCanStop()) { ScreenCaptor.copyToClipboard(s); Config config = new Config(); if (config.getPlayMusicAfterUpload()) { new MP3Player().play(ClassLoader .getSystemResourceAsStream("message.mp3")); } while (ifStrinClipboard(s)) { try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } } } } }).start(); break; case "full": new Thread(new Runnable() { @Override public void run() { try { // 如果不延迟会连菜单一起捕捉到 Thread.sleep(200); } catch (InterruptedException e1) { e1.printStackTrace(); } ScreenCaptor sc = ScreenCaptor.newInstance(); String result = sc.getLink(); ScreenCaptor.copyToClipboard(result); Config config = new Config(); if (config.getPlayMusicAfterUpload()) { new MP3Player().play(ClassLoader .getSystemResourceAsStream("message.mp3")); } while (ifStrinClipboard(result)) { try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } } } }).start(); break; } } public static void main(String[] args) { launch(args[0]); } public static boolean ifStrinClipboard(String str) { return getClipboard().equals(str); } public static String getClipboard() { Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard(); Transferable tra = cb.getContents(null); String result = null; try { result = (String) tra.getTransferData(DataFlavor.stringFlavor); } catch (UnsupportedFlavorException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return result; } }