2013-06-19 7 views
1

값이 싼 아이튠즈처럼 작동하는 프로그램을 만들려고하는데 .wav 파일을 가져 오려고하면 파일 자체가 아니라 폴더 만 보여줍니다. 나는 파일이 거기에 있고, .wav라는 것을 확인했다. 나는 누군가가 나에게 말할 수 있다면 필자가 필터를 제대로 넣었는지 확신하지 못한다.JFileChooser가 개별 파일을 표시하지 않습니다.

//Andrew Douglas 
    //Imports 
    import javax.swing.*; 
    import javax.swing.event.*; 
    import java.awt.*; 
    import java.awt.event.*; 
    import java.io.*; 
    import javax.sound.sampled.*; 
    import javax.swing.filechooser.*; 
    import javax.swing.JTable; 


    //Creates class 
    public class JPlayer extends JFrame implements ActionListener { 

     //Sets up form items and necessary globals 
     JButton save, play, stop, loop; 
     JFileChooser dialog; 
     JTable table; 
     String Artist, Song, Album, Loc; 
     Object[][] data; 
     int n = 1; 
     //Makes the library, with a 51 song limit. 
     JLibrary[] addedSong = new JLibrary[50]; 

     public JPlayer() { 
      super ("JPlayer"); 
      //Creates frame 
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      this.setTitle("jPlayer"); 
      this.setSize(800, 600); 
      //Makes titles for table 
      String[] columnNames = {"Artist", 
            "Song", 
            "Album", 
            "Location"}; 
      //Gives one value for array 
      addedSong[0] = new JLibrary ("Rick Astley", "NGGYU", "UnKnown", "C:\\Users\\Andrew\\Downloads\\never gonna give you up.wav"); 
      //Adds it to table array 
      Object[][] data = { 
      { 
       (addedSong[0].returnArtist()), (addedSong[0].returnSong()), (addedSong[0].returnAlbum()), (addedSong[0].returnFile()) 
      } 

      }; 
      //Creates table 
      table = new JTable(data, columnNames); 
      table.setPreferredScrollableViewportSize(new Dimension(500, 70)); 
      table.setFillsViewportHeight(true); 
      //Lets it sort the rows 
      table.setAutoCreateRowSorter(true); 
      //Creates the scroller 
      JScrollPane scrollPane = new JScrollPane(table); 
      //Makes the save file dialog and the play and save buttons 
      dialog = new JFileChooser(); 
      play = new JButton ("Play Song"); 
      save = new JButton ("Save a file"); 
      //Adds the button listeners 
      save.addActionListener(this); 
      play.addActionListener(this); 
      //Adds buttons to panel 
      JPanel buttons = new JPanel(); 
      buttons.add(save); 
      buttons.add(play); 
      //Puts the buttons at the bottom 
      add(buttons, BorderLayout.SOUTH); 
      add(scrollPane); 
      this.setVisible(true); 

     } 
     //Creates action listener for button 
     public void actionPerformed(ActionEvent e) { 
      if (e.getSource() == save) { 
       dialog.setFileFilter(new FileNameExtensionFilter("WAV File", ".wav")); 
       int returnVal = dialog.showSaveDialog(JPlayer.this); 
       if (returnVal == dialog.APPROVE_OPTION) { 
        File file = dialog.getSelectedFile(); 
        addToLibrary("", "", "", file.getName()); 

       } 
      } 
      else if (e.getSource() == play) { 
       String holder2; 
       Object holder; 
       holder = table.getValueAt(table.getSelectedRow(), 3); 
       try { 
       File soundFile = new File(holder.toString()); 
       AudioInputStream audioIn = AudioSystem.getAudioInputStream(soundFile); 
       Clip clip = AudioSystem.getClip(); 
       clip.open(audioIn); 
       clip.start(); 
       } catch (UnsupportedAudioFileException f) { 
      f.printStackTrace(); 
      } catch (IOException f) { 
      f.printStackTrace(); 
      } catch (LineUnavailableException f) { 
      f.printStackTrace(); 
      } 

     } } 
     public static void main(String[]args) { 
      new JPlayer(); 
     } 
     public void addToLibrary(String art, String song, String alb, String file) { 
       addedSong[n] = new JLibrary(art, song, alb, file); 
       int j = 0; 
       while (n >= 0) { 
       Object[][] data = { 
       { 
        addedSong[(n-j)], 
       } 
      }; 
       j = j+1; 
      } 
       n = n +1; 

     } 

} 

아무 도움이됩니다. :)

답변

4

wav이 아니라 .wav입니다.

dialog.setFileFilter(new FileNameExtensionFilter("WAV File", "wav")); 
+0

아, 고맙습니다. :) – user2492497

관련 문제