📄 mymp3view.java
字号:
Runnable searchOver = new Runnable() { public void run() { progressBar.setVisible(false); } }; public void run() { try { SwingUtilities.invokeLater(updateBefore); String keyword = URLEncoder.encode(jtf1.getText()); String uStr = "http://mp3.baidu.com/m?f=ms&tn=baidump3&ct=134217728&lf=&rn=&word=" + keyword + "&lm=-1"; String listPageCode = StringFilter.getHtmlCode(uStr); String[] temp = listPageCode.split("链接速度[\r\n\t]*</th>[\r\n\t]*</tr>[\r\n\t]*<tr>"); if (temp.length >= 2) { // temp小于2则表示找不到数据 temp = temp[1].split("</tr>[\r\n\t]*</table>"); temp = temp[0].split("</tr><tr>"); if (temp.length > 0 ) { total = temp.length; Mp3TableModel mtm = (Mp3TableModel) jTable1.getModel(); mtm.clearValues(); SwingUtilities.invokeLater(beforeProcess); for (String group : temp) { read++; MGroup mg = new MGroup(group); // 第一个页面数据 String url = mg.getURL(); url = url.replaceAll(mg.getName(), URLEncoder.encode(mg.getName())); String mp3PageCode = StringFilter.getHtmlCode(url); String mp3Url = getMp3Address(mp3PageCode); Mp3Model mp3 = new Mp3Model(mg.getName(), mp3Url, mg.getSize()); mtm.addValue(mp3); SwingUtilities.invokeLater(update1); if (read >= 20) break; } } } SwingUtilities.invokeLater(searchOver); } catch (Exception e) { //System.out.println("Exception e"); } } } /** * 将所有已经打交的数据提交并进行下载 * @param evt */ private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed addTasks(); jTable2.updateUI(); }//GEN-LAST:event_jButton2ActionPerformed private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed // 开始按钮 TableModel tm = jTable2.getModel(); int[] keys = jTable2.getSelectedRows(); if (keys.length > 0 && (tm instanceof TaskTableModel)) { TaskTableModel ttm = (TaskTableModel) tm; for (int key : keys) { try { TaskModel task = ttm.getValue(key); task.toStart(); } catch (Exception exception) { } } } }//GEN-LAST:event_jButton3ActionPerformed private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed // 暂停按钮 TableModel tm = jTable2.getModel(); int[] keys = jTable2.getSelectedRows(); if (tm instanceof TaskTableModel) { TaskTableModel ttm = (TaskTableModel) tm; for (int key : keys) { try { TaskModel task = ttm.getValue(key); task.toPause(); } catch (Exception exception) { } } } }//GEN-LAST:event_jButton4ActionPerformed private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed // 删除按钮 removeTask(); jTable2.updateUI(); }//GEN-LAST:event_jButton5ActionPerformed private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton6ActionPerformed // 停止按钮 TableModel tm = jTable2.getModel(); int[] keys = jTable2.getSelectedRows(); if (tm instanceof TaskTableModel) { TaskTableModel ttm = (TaskTableModel) tm; for (int key : keys) { try { ttm.getValue(key).toStop(); } catch (Exception exception) { } } } }//GEN-LAST:event_jButton6ActionPerformed private void jtf1KeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jtf1KeyPressed int key = evt.getKeyCode(); if (key == 10) { searchMp3(); } }//GEN-LAST:event_jtf1KeyPressed private void jLabel3MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel3MouseClicked JFileChooser jfc = new JFileChooser("选择保存路径"); jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); jfc.setMultiSelectionEnabled(false); jfc.removeChoosableFileFilter(jfc.getAcceptAllFileFilter()); jfc.addChoosableFileFilter(new DirFileFilter()); int sel = jfc.showDialog(mainPanel, "确定"); if (sel == JFileChooser.APPROVE_OPTION) { File file = jfc.getSelectedFile(); if (file == null) return; AppConfig app = AppConfig.getInstance(); app.setSavePath(file.getAbsolutePath()); // 设置默认保存路径 jLabel_savePath.setText(app.getSavePath()); } }//GEN-LAST:event_jLabel3MouseClicked private void jLabel3MouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel3MouseEntered jLabel3.setForeground(Color.BLUE); }//GEN-LAST:event_jLabel3MouseEntered private void jLabel3MouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel3MouseExited jLabel3.setForeground(Color.BLACK); }//GEN-LAST:event_jLabel3MouseExited private void jLabel_savePathMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel_savePathMouseClicked try { String path = jLabel_savePath.getText(); Runtime rt = Runtime.getRuntime(); String cmd = "cmd.exe /c start " + path; rt.exec(cmd); } catch (Exception e) { //System.out.println("e" + e.getMessage()); } }//GEN-LAST:event_jLabel_savePathMouseClicked private void jLabel_savePathMouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel_savePathMouseEntered this.jLabel_savePath.setForeground(Color.BLUE); }//GEN-LAST:event_jLabel_savePathMouseEntered private void jLabel_savePathMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel_savePathMouseExited this.jLabel_savePath.setForeground(Color.BLACK); }//GEN-LAST:event_jLabel_savePathMouseExited private void addTasks() { ArrayList<TaskModel> mp3ToLoad = new ArrayList<TaskModel>(); TableModel tableModel = jTable1.getModel(); int[] keys = jTable1.getSelectedRows(); if (tableModel instanceof Mp3TableModel) { Mp3TableModel mtm = (Mp3TableModel) tableModel; List<Mp3Model> mp3s = mtm.getValues(); for (int key : keys) { Mp3Model mp3 = mp3s.get(key); TaskModel tm = new TaskModel(mp3.getName(), mp3.getUrl()); mp3ToLoad.add(tm); } } if (manager == null) { manager = new Manager(jTable2); TableColumnModel tcm = jTable2.getColumnModel(); TableColumn tc = tcm.getColumn(TaskModel.COLUMN_PROCESS); tc.setCellRenderer(new ProgressBarRenderer()); } if (!mp3ToLoad.isEmpty()) { manager.addTasks(mp3ToLoad); } } private void searchMp3() { search = new Thread(new SearchMp3()); search.start(); } private void removeTask() { TableModel tm = jTable2.getModel(); int[] keys = jTable2.getSelectedRows(); if (keys.length > 0 && (tm instanceof TaskTableModel)) { ArrayList<TaskModel> listDel = new ArrayList<TaskModel>(); TaskTableModel ttm = (TaskTableModel) tm; for (int key : keys) { try { TaskModel temp = ttm.getValue(key); listDel.add(temp); } catch (Exception exception) {} } ttm.removeTasks(listDel); } } // 开始按钮 // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JButton jButton3; private javax.swing.JButton jButton4; private javax.swing.JButton jButton5; private javax.swing.JButton jButton6; private javax.swing.JButton jButton7; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel_savePath; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JTable jTable1; private javax.swing.JTable jTable2; private javax.swing.JTextField jtf1; private javax.swing.JPanel mainPanel; private javax.swing.JProgressBar progressBar; // End of variables declaration//GEN-END:variables private Thread search; // mp3搜索线程 private Manager manager;// mp3下载总控制线程 private final Timer messageTimer; private final Timer busyIconTimer; private final Icon idleIcon; private final Icon[] busyIcons = new Icon[15]; private int busyIconIndex = 0; private JDialog aboutBox;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -