Как мне изменить этот оператор кода? - PullRequest
0 голосов
/ 07 июля 2010

Мне нужна твоя помощь.

У меня есть этот код:

File f1 = openFile("Choose file one",
        JFileChooser.OPEN_DIALOG);
    if (f1 == null)
        return;
    File f2 = openFile("Choose file two",
        JFileChooser.OPEN_DIALOG);
    if (f2 == null)
        return;

        File f3 = openFile("Choose destination",
        JFileChooser.SAVE_DIALOG);
    if (f3 == null)
       return;
 JOptionPane.showMessageDialog(this, "Files are now joined in"
           + f3.getName());

Я бы хотел избавиться от этого:

File f3 = openFile("Choose destination",
        JFileChooser.SAVE_DIALOG);
    if (f3 == null)
       return;

и используйте следующую инструкцию кода, но, к сожалению, я получаю ошибки ...

OptionPane.showMessageDialog(this, "Files are now joined in"
           + f1.getName() + f2.getName());

Как мне решить проблему?

Ответы [ 3 ]

1 голос
/ 07 июля 2010

Если вы хотите добавить имена файлов, вам нужно сначала отделить имя от расширения. используйте ´lastIndexOf method to find the '.' and substring`, чтобы получить только часть имени:

    ...
    if (f2 == null)
        return;

    String newName = fileName(f1) + "+" + f2.getName();  // assuming extension of f2
   // or   newName = fileName(f1) + "+" + fileName(f2) + ".wav";
    File f3 = new File(newName);
    ...

private static String fileName(File file) {
    String name = file.getName();
    int index = name.lastIndexOf('.');
    if (index != -1) {
        name = name.substring(0, index);
    }
    return name;
}

Аналогично, чтобы получить расширение (name.substring(index+1)) и проверить, равны ли оба расширения (если требуется).

Английский не мой первый (и не второй) язык, исправления приветствуются

EDIT
но я не верю, что простое объединение двух WAV даст рабочий. Я подозреваю, что вам нужно удалить заголовок из второго WAV и актуализировать первый ...

0 голосов
/ 07 июля 2010
 JOptionPane.showMessageDialog(this, "Files are now joined in"
       + f1.getName() + f2.getName());

должен компилироваться, если this является подклассом Composite.Если предположить, что входными файлами f1 и f2 являются path/file1.wav и path/file2.wav, сообщение будет

 Files are now joined infile1.wavfile2.wav
0 голосов
/ 07 июля 2010

Вам действительно нужно быть более конкретным, какие ошибки вы получаете?Как ваш окончательный код выглядит точно?

Вы получите ошибку, если после удаления объявления обратитесь к f3, а также, как упомянул Мэтью, вы пропустите букву "j" в JOptionPane.

Удачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...