如何修改此代码语句?

时间:2010-07-07 10:11:27

标签: java

我确实需要你的帮助。

我有这段代码:

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 个答案:

答案 0 :(得分:1)

如果要添加文件名,则需要先从扩展名中拆分名称。使用'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))并检查两个扩展名是否相等(如果需要)。

英语不是我的第一语言(不是第二语言),欢迎更正

修改
但我不相信只加入两个WAV会产生一个有效的WAV。我怀疑你需要从第二个WAV中删除标题并实现第一个...

答案 1 :(得分:0)

你真的需要更具体,你会得到什么错误?你的最终代码如何看起来像是什么?

如果在删除声明后引用f3,则会出现错误,同样,如Mathew所述,您错过了JOptionPane中的“j”。

祝你好运

答案 2 :(得分:0)

 JOptionPane.showMessageDialog(this, "Files are now joined in"
       + f1.getName() + f2.getName());
如果thisComposite的子类,

应该编译。假设输入文件f1和f2为path/file1.wavpath/file2.wav,则消息将为

 Files are now joined infile1.wavfile2.wav