package cnm; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JTextField; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JTextArea; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.IOException; import javax.swing.JScrollPane; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; 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 javax.swing.SwingConstants; import cnm.music163.Mp3Info; import cnm.music163.Mp3Player; import cnm.music163.Musicer; import cnm.music163.Util; import javax.swing.JProgressBar; import javax.swing.JCheckBox; import javax.swing.JLabel; import javax.swing.event.ChangeListener; import javax.swing.event.ChangeEvent; public class Music163DownloadOne { private JFrame frame; private JTextField txtHttpmusiccomsongiduserid; private JTextArea textArea; private JTextField txtHttpwwwzuidaimacomusersharehtm; private Musicer m; private String MusicSavePath = "mp3"; private JProgressBar progressBar; private JCheckBox chckbxNewCheckBox; private JButton btnPlay; private JButton btnStop; private Mp3Player p=new Mp3Player(""); private JCheckBox chckbxNewCheckBox_1; private JTextArea textArea_1; private JButton button; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { Music163DownloadOne window = new Music163DownloadOne(); window.frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } private void getM() { m = new Musicer(); } /** * Create the application. */ public Music163DownloadOne() { initialize(); } private void gogo() { // 每次获取一个新m // 当发生下载失败时,不会受上一个m的影响 getM(); // 初始化进度条 progressBar.setValue(0); btnPlay.setEnabled(false); btnStop.setEnabled(false); //------- String start = "id="; String end = "&"; String musicID = ""; String str = txtHttpmusiccomsongiduserid.getText(); textArea.append("\n开始任务[" + str + "]"); int s = str.indexOf(start); if (s >= 0) { int e = str.indexOf(end); s = s + start.length(); if (e >= 0) { musicID = str.substring(s, e); } else { musicID = str.substring(s); } } textArea.append("\n获取ID[" + musicID + "]"); m.setId(musicID); String downFile = Util.downloadFileEx(m.getDownUrl(), MusicSavePath, progressBar); m.setDownPath(downFile); m.setPath(downFile); if ("".equals(m.getDownPath())) { textArea.append("__[下载失败],可能是网络错误,或者为VIP收费音乐"); return; } else { textArea.append("__[下载成功]" + m.getDownPath()); btnPlay.setEnabled(true); } textArea.append("\n开始重命名"); boolean isSetInfo = Mp3Info.setInfo4html(m); if (isSetInfo) { textArea.append(",[获取到 标题:" + m.getName() + " 作者:" + m.getSinger() + "]"); if (Util.rename(m, MusicSavePath)) { textArea.append("\n_[重命名成功]-->" + m.getPath()); } else { textArea.append("\n_[重命名失败]"); } } else { textArea.append("--获取标题失败,放弃重命名"); } textArea.append("\n[----------[任务结束]----------\n"); } private void selectInput() { // 选中输入框 清空内容 txtHttpmusiccomsongiduserid.setText(""); // 选中输入框并且勾选 // 将从粘贴板获取内容 粗略判断格式 if (chckbxNewCheckBox.isEnabled()) { //获取粘贴板 Clipboard clip=Toolkit.getDefaultToolkit().getSystemClipboard(); Transferable cliptf= clip.getContents(null); if(cliptf!=null) { //是否为文本 if(cliptf.isDataFlavorSupported(DataFlavor.stringFlavor)) { String t=""; try { t = (String)cliptf.getTransferData(DataFlavor.stringFlavor); } catch (UnsupportedFlavorException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } txtHttpmusiccomsongiduserid.setText(t); } } String start = "id="; String end = "&"; String str = txtHttpmusiccomsongiduserid.getText(); int s = str.indexOf(start); int e = str.indexOf(end); if (s >= 0 ) { if(e>=s||e==-1) { textArea.append("\n[从粘贴板获取到任务]"+str); gogo(); } } } } /** * Initialize the contents of the frame. */ private void initialize() { frame = new JFrame(); frame.setResizable(false); frame.setBounds(100, 100, 710, 400); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().setLayout(null); txtHttpmusiccomsongiduserid = new JTextField(); txtHttpmusiccomsongiduserid.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { selectInput(); } }); txtHttpmusiccomsongiduserid.setText("http://music.163.com/song?id=1351551838&userid=123456"); txtHttpmusiccomsongiduserid.setBounds(10, 7, 430, 21); frame.getContentPane().add(txtHttpmusiccomsongiduserid); txtHttpmusiccomsongiduserid.setColumns(10); JButton btnGoGo = new JButton("Download"); btnGoGo.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { gogo(); } }); btnGoGo.setBounds(580, 6, 104, 23); frame.getContentPane().add(btnGoGo); ImageIcon img = new ImageIcon(this.getClass().getResource("qr.gif")); textArea = new JTextArea() { @Override public void append(String str) { // TODO Auto-generated method stub super.append(str); // 实时刷新 this.paintImmediately(getBounds()); } { // 透明 setOpaque(false); } protected void paintComponent(Graphics g) { g.drawImage(img.getImage(), 8, 45, this); super.paintComponent(g); } }; textArea.setBounds(10, 35, 564, 285); // 自动换行 textArea.setLineWrap(true); // 是否能编辑 // textArea.setEditable(false); textArea.setText("使用说明:在上方输入框填入分享的连接。必须含有关键字[id=],截取内容为[id=]*[&] or [id=]*"); textArea.append("\n[声明]此源码仅用作技术研究,请勿做它用!"); textArea.append("\n\n\n\n\n\n\n\n\n\n\n\n\n"); frame.getContentPane().add(textArea); // 放入滚动条 JScrollPane scrollPane = new JScrollPane(textArea); scrollPane.setBounds(10, 35, 564, 285); frame.getContentPane().add(scrollPane); txtHttpwwwzuidaimacomusersharehtm = new JTextField(); txtHttpwwwzuidaimacomusersharehtm.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { try { Runtime.getRuntime() .exec("cmd.exe /c start http://www.zuidaima.com/user/1636574934059008/share.htm"); } catch (IOException e1) { e1.printStackTrace(); } } }); txtHttpwwwzuidaimacomusersharehtm.setHorizontalAlignment(SwingConstants.CENTER); txtHttpwwwzuidaimacomusersharehtm.setFont(new Font("宋体", Font.BOLD, 14)); txtHttpwwwzuidaimacomusersharehtm.setForeground(new Color(30, 144, 255)); txtHttpwwwzuidaimacomusersharehtm.setText("[\u8FD9\u91CC\u53EF\u4EE5\u70B9\u5F00\u6D4F\u89C8\u5668] ->\u6B64\u8F6F\u4EF6\u6765\u81EA\u8FD9\u91CC<- \u5934\u50CF\u4E5F\u80FD\u6253\u8D4F"); txtHttpwwwzuidaimacomusersharehtm.setEditable(false); txtHttpwwwzuidaimacomusersharehtm.setBounds(10, 330, 564, 21); frame.getContentPane().add(txtHttpwwwzuidaimacomusersharehtm); txtHttpwwwzuidaimacomusersharehtm.setColumns(10); progressBar = new JProgressBar(); progressBar.setMaximum(100); progressBar.setBounds(10, 320, 564, 10); frame.getContentPane().add(progressBar); chckbxNewCheckBox = new JCheckBox("\u7C98\u8D34\u677F &\u81EA\u52A8\u4E0B\u8F7D"); chckbxNewCheckBox.setSelected(true); chckbxNewCheckBox.setBounds(446, 6, 128, 23); frame.getContentPane().add(chckbxNewCheckBox); btnPlay = new JButton("Play"); btnPlay.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { /* * TODO BUG:前一首未播放完,或者没停止,再播放,会有两个播放器 * */ btnStop.setEnabled(true); p.setFilename(m.getPath()); p.play(); } }); btnPlay.setEnabled(false); btnPlay.setBounds(580, 39, 104, 23); frame.getContentPane().add(btnPlay); btnStop = new JButton("Stop"); btnStop.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { p.stop(); btnPlay.setEnabled(true); } }); btnStop.setEnabled(false); btnStop.setBounds(580, 72, 104, 23); frame.getContentPane().add(btnStop); chckbxNewCheckBox_1 = new JCheckBox("\u9690\u85CF\u4E8C\u7EF4\u7801"); chckbxNewCheckBox_1.setFont(new Font("宋体", Font.PLAIN, 14)); chckbxNewCheckBox_1.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { if(chckbxNewCheckBox_1.isSelected()) { textArea.setOpaque(true); textArea.append(" "); }else { textArea.setOpaque(false); textArea.append(" "); } } }); chckbxNewCheckBox_1.setBounds(580, 115, 103, 23); frame.getContentPane().add(chckbxNewCheckBox_1); textArea_1 = new JTextArea(); textArea_1.setFont(new Font("Monospaced", Font.PLAIN, 16)); textArea_1.setLineWrap(true); textArea_1.setEditable(false); textArea_1.setOpaque(false); textArea_1.setText("求打赏\n一分不嫌少\n一块也不嫌多\n谢谢各位老板"); textArea_1.setBounds(581, 149, 104, 114); frame.getContentPane().add(textArea_1); button = new JButton("<-Clear"); button.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { textArea.setText(""); } }); button.setHorizontalAlignment(SwingConstants.LEFT); button.setBounds(580, 264, 93, 56); frame.getContentPane().add(button); } }


twedss
1月7日
暂无贡献等级
s4dmcc LV1
2024年9月17日
JulyMagnolia LV4
2024年4月29日
是夜在熬我. LV6
2024年2月19日
cxz2132132 LV11
2023年12月9日
pangzhihui LV14
2023年11月13日
oldfox LV19
2023年11月13日
EFWAGGFAWGR
2023年10月19日
暂无贡献等级
lzl111213 LV1
2023年6月21日
runbey6666 LV2
2023年6月15日