muslife.java
来自「用Java编写的一个可下载MP3」· Java 代码 · 共 842 行 · 第 1/3 页
JAVA
842 行
}else if(alltype.isSelected()){ type=-1; } String url = "http://mp3.baidu.com/m?f=ms&rn=&tn=baidump3&ct=134217728&word=" + keyword.getText().trim() + "&lm="+ type; searchInfo.setText("正在连接....."); searchInfo.setText("下载网页....."); musicTableModel.clearList(); musicTable.updateUI(); String code = HtmlCode.getHtmlCode(url);//GEN-LAST:event_searchButtonActionPerformed String[] acode=code.split("链接速度</th>[\r\n\t]*</tr>[\r\n\t]*<tr>"); searchInfo.setText("解析网页....."); if(acode.length>1){ code=acode[1];//除掉前面代码 code=(code.split("</tr>[\r\n\t]*</table>"))[0];//去掉后面代码 acode=code.split("</tr><tr>"); int i=0; for(String paragraph:acode){ searchInfo.setText("解析第"+i+"首歌"); musicTableModel.addItem(Parse.parseParagraph(paragraph)); musicTable.updateUI(); i++; } }else{ searchInfo.setText("没有歌曲或者网络错误"); } searchInfo.setText("解析完成!双击下载"); searchButton.setEnabled(true); } catch (Exception ex) { Logger.getLogger(Muslife.class.getName()).log(Level.SEVERE, null, ex); } } }); t.start();} private void musicTableMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_musicTableMouseClicked if(evt.getClickCount()<2) return; final int row=musicTable.rowAtPoint(evt.getPoint()); Thread t=new Thread(new Runnable(){ public void run(){ mainPane.setSelectedIndex(1); SearchItem music=(SearchItem)musicTableModel.getItem(row); String[] s=music.getUrl().split("/"); String fileName=s[s.length-1]; DownloadTask task=new DownloadTask(music.getName(),music.getUrl()); Thread downloadThread=new Downloader(task,"./download/temp/"); downloadInfo.setText("开始下载"+fileName); downloadThread.start(); downloadTableModel.addItem(task); } }); t.start(); }//GEN-LAST:event_musicTableMouseClicked private void clearmusicListButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_clearmusicListButtonActionPerformed musicTableModel.clearList(); musicTable.updateUI();}//GEN-LAST:event_clearmusicListButtonActionPerformed private void playButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_playButtonActionPerformed if(playButton.getText().equals("暂停")){ player.pause(); playButton.setText("播放"); } else{ player.play(); playButton.setText("暂停"); } }//GEN-LAST:event_playButtonActionPerformed private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed /* player = new Player(f);//GEN-LAST:event_jButton2ActionPerformed */ } private void nextButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_nextButtonActionPerformed player.next(); playButton.setText("暂停"); }//GEN-LAST:event_nextButtonActionPerformed private void previousButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_previousButtonActionPerformed player.previous(); playButton.setText("暂停"); }//GEN-LAST:event_previousButtonActionPerformed private void stopButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_stopButtonActionPerformed player.stop(); playButton.setText("播放"); }//GEN-LAST:event_stopButtonActionPerformed private void playListTableMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_playListTableMouseClicked if(evt.getClickCount()<2){ return; } int row=playListTable.rowAtPoint(evt.getPoint()); player.playClick(row); playButton.setText("暂停"); }//GEN-LAST:event_playListTableMouseClicked private void pauseButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pauseButtonActionPerformed int index; if((index=downloadTable.getSelectedRow())!=-1){ DownloadTask task=(DownloadTask)downloadTableModel.getItem(index); task.setState("pause"); } }//GEN-LAST:event_pauseButtonActionPerformed private void startButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_startButtonActionPerformed int index; if((index=downloadTable.getSelectedRow())!=-1){ DownloadTask task=(DownloadTask)downloadTableModel.getItem(index); task.setState("download"); } }//GEN-LAST:event_startButtonActionPerformed private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed int index; if((index=downloadTable.getSelectedRow())!=-1){ DownloadTask task=(DownloadTask)downloadTableModel.getItem(index); task.setState("finish"); } }//GEN-LAST:event_cancelButtonActionPerformed private void adddirctoryButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_adddirctoryButtonActionPerformed ExtensionIOFilenameFilter filenameFilter=new ExtensionIOFilenameFilter(); filenameFilter.setName("mp3"); chooser.resetChoosableFileFilters(); chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); int result=chooser.showOpenDialog(jPanel2); if(result==JFileChooser.APPROVE_OPTION){ File directory=chooser.getSelectedFile(); File[] files=directory.listFiles(filenameFilter); for(File file:files){ player.add(file.getPath()); Track track=new Track(); track.setName(file.getName()); track.setPath(file.getPath()); playListTableModel.addItem(track); playListTable.updateUI(); PlayListReader.savePlayList(playListTableModel.getList()); } }}//GEN-LAST:event_adddirctoryButtonActionPerformed private void addtrackButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addtrackButtonActionPerformed final ExtensionFileFilter filter=new ExtensionFileFilter(); filter.addExtension("mp3"); filter.setDescription("mp3 files"); chooser.setFileFilter(filter); chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); int result=chooser.showOpenDialog(jPanel2); if(result==JFileChooser.APPROVE_OPTION){ File file=chooser.getSelectedFile(); player.add(file.getPath()); Track track=new Track(); track.setName(file.getName()); track.setPath(file.getPath()); playListTableModel.addItem(track); playListTable.updateUI(); // PlayListReader.savePath(track); PlayListReader.savePlayList(playListTableModel.getList()); }}//GEN-LAST:event_addtrackButtonActionPerformed private void deleteTrackButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_deleteTrackButtonActionPerformed if(playListTable.getSelectedRow()==-1){ JOptionPane.showConfirmDialog(jPanel2,"请选择一行", "警告", JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE); }else{ int index=playListTable.getSelectedRow(); playListTableModel.removeItem(index); playListTable.updateUI(); player.remove(index); PlayListReader.savePlayList(playListTableModel.getList()); }}//GEN-LAST:event_deleteTrackButtonActionPerformed private void aboutButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_aboutButtonActionPerformed AboutDialog about= new AboutDialog(this,true); about.setLocationRelativeTo(null); about.setVisible(true);}//GEN-LAST:event_aboutButtonActionPerformed private void mailButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mailButtonActionPerformed MailDialog mail= new MailDialog(this,true); mail.setLocationRelativeTo(null); mail.setVisible(true); }//GEN-LAST:event_mailButtonActionPerformed void initPlayer(){ List<Track> playList=PlayListReader.getPlayList(); playListTableModel.setList(playList); playListTable.updateUI(); List<String> pathList=PlayListReader.getPathList(); player = new ListPlayer(pathList,1); // chooser=new JFileChooser(); chooser.setCurrentDirectory(new File(".")); } void initTimer(){ java.util.TimerTask tt=new java.util.TimerTask() { public void run() { downloadTable.updateUI(); } }; java.util.Timer t=new java.util.Timer(); t.scheduleAtFixedRate(tt, 0, 1000); } /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { //JFrame.setDefaultLookAndFeelDecorated(true); JFrame f=new Muslife(); f.setLocationRelativeTo(null); f.setVisible(true); } }); } //播放器定义 private ListPlayer player; JFileChooser chooser; // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton aboutButton; private javax.swing.JButton adddirctoryButton; private javax.swing.JButton addtrackButton; private javax.swing.JRadioButton alltype; private javax.swing.JButton cancelButton; private javax.swing.JButton clearmusicListButton; private javax.swing.JButton deleteTrackButton; private javax.swing.JTextField downloadInfo; private TaskTableModel downloadTableModel; private javax.swing.JTable downloadTable; private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JButton jButton3; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel10; private javax.swing.JPanel jPanel11; private javax.swing.JPanel jPanel12; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JPanel jPanel4; private javax.swing.JPanel jPanel5; private javax.swing.JPanel jPanel6; private javax.swing.JPanel jPanel7; private javax.swing.JPanel jPanel8; private javax.swing.JPanel jPanel9; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JScrollPane jScrollPane3; private javax.swing.JTextField keyword; private javax.swing.JButton mailButton; private javax.swing.JTabbedPane mainPane; private javax.swing.JRadioButton mp3type; private org.serain.shmily.model.searchTableModel musicTableModel; private javax.swing.JTable musicTable; private javax.swing.JButton nextButton; private javax.swing.JButton pauseButton; private javax.swing.JButton playButton; private javax.swing.JTable playListTable; private PlayListTableModel playListTableModel; private javax.swing.JButton previousButton; private javax.swing.JButton searchButton; private javax.swing.JTextField searchInfo; private javax.swing.ButtonGroup searchbuttonGroup; private javax.swing.JButton startButton; private javax.swing.JButton stopButton; private javax.swing.JRadioButton wmatype; // End of variables declaration//GEN-END:variables }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?