0

I am creating a file in a class and I want to pass the file path to use the file in another class. I am getting the following error when I try to use the file in another class:

Does anyone know why it cannot see the file? The string saveFilePath is initialized at the top of the Mainframe class. If I hard code the path it works fine but when I pass the path as the string saveFilePath I get the error. Thanks

   private void saveFile() {
    JFileChooser fileChooser = new JFileChooser();
    FileFilter wavFilter = new FileFilter() {
        @Override
        public String getDescription() {
            return "Sound file (*.WAV)";
        }

        @Override
        public boolean accept(File file) {
            if (file.isDirectory()) {
                return true;
            } else {
                return file.getName().toLowerCase().endsWith(".wav");
            }
        }
    };

    fileChooser.setFileFilter(wavFilter);
    fileChooser.setAcceptAllFileFilterUsed(false);

    int userChoice = fileChooser.showSaveDialog(this);
    if (userChoice == JFileChooser.APPROVE_OPTION) {
        saveFilePath = fileChooser.getSelectedFile().getAbsolutePath();
        if (!saveFilePath.toLowerCase().endsWith(".wav")) {
            saveFilePath += ".wav";
        }

        File wavFile = new File(saveFilePath);

        try {
            recorder.save(wavFile);
            buttonPlay.setEnabled(true);
            Keyup.setEnabled(true);
            Keydown.setEnabled(true);
            btnSave.setEnabled(true);
            getKey.setEnabled(true);


        } catch (IOException ex) {
            JOptionPane.showMessageDialog(Mainframe.this, "Error",
                    "Error saving to sound file!",
                    JOptionPane.ERROR_MESSAGE);
            ex.printStackTrace();
        }
    }
}


public class notehandle extends Mainframe{


String s = saveFilePath;
File f = new File(s);
float pitchInHz;

public float note() {

    PitchDetectionHandler pdh = new PitchDetectionHandler() {

        public void handlePitch(PitchDetectionResult result,AudioEvent e) {

           pitchInHz = result.getPitch();



        }



    };

    AudioDispatcher dispatcher = null;
    try {
        dispatcher = AudioDispatcherFactory.fromFile(f, 1024, 0);
    } catch (UnsupportedAudioFileException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    AudioProcessor p = new PitchProcessor(PitchEstimationAlgorithm.FFT_YIN, 48000, 1024, pdh);
    dispatcher.addAudioProcessor(p);
    new Thread(dispatcher,"Audio Dispatcher").start();


    return pitchInHz;



}

}

G. Mcc
  • 1
  • 1

0 Answers0